Bienvenido a los foros de FT81x Manía. Te invitamos a regístrate totalmente gratis. Disfruta de tu experiencia con un grandes amigos y Staff.

Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 50
» Latest member: juanj
» Forum threads: 148
» Forum posts: 446

Full Statistics

Online Users
There are currently 2 online users.
» 0 Member(s) | 2 Guest(s)

Latest Threads
lightcalamar
FT812 and what ;)

Forum: Hardware
Last Post:  lightcalamar
Yesterday, 01:29 19
» Replies: 3
» Views: 22
TFTLCDCyg
Variante STM32F746IG para...

Forum: Instalación Cores STM32
Last Post:  TFTLCDCyg
19-06-2018, 16:49 37
» Replies: 19
» Views: 365
TFTLCDCyg
GD23ZU Library

Forum: Library GD23ZU
Last Post:  TFTLCDCyg
19-06-2018, 08:01 48
» Replies: 2
» Views: 67
TFTLCDCyg
GD23Z and FlexCAN library...

Forum: Codigos
Last Post:  TFTLCDCyg
15-06-2018, 22:44 04
» Replies: 3
» Views: 66
lightcalamar
Oficial Video Playback FT...

Forum: Library GD23ZU
Last Post:  lightcalamar
14-06-2018, 19:01 39
» Replies: 0
» Views: 17

 
  [SOLVED] Test playback video with error
Posted by:  lightcalamar - 16-02-2018, 15:06 09 - Forum: Teensy - Replies (1)

Este video demuestra que Teensy 3.5 puede reproducir videos sobre pantallas FT81x.

Es el comienzo...



Seguirá ...

Print this item

  Problem with calling another screen
Posted by:  raufjay - 16-02-2018, 02:50 01 - Forum: Codigos - Replies (3)

Hello,
I am trying to open another screen by clicking on a button at previous screen.

For Example I have a button on screen1. When I click on that button, I want Screen2 should be opened.

But what happens when I clicked the button, the Screen2 shows up for a glance and I am back on Screen1. The display does not stay on Screen2.

I tried several options, but it seems I am missing something here.

Please have a look at the code and advise. Thanks.

Code:
// // //  Screen1 // // //

void commands()
{
        GD.cmd_dlstart();
        GD.Clear(1,1,1);
       
        GD.ColorRGB(255,100,0);// Red color shadow 255,255);
        GD.cmd_text(10, 6, 31, 0, "Commands");




// Buttons      
        GD.cmd_fgcolor(0xc0c0c0);
        GD.ColorA(170);
 
         tagval = GD.rd( REG_TOUCH_TAG);        //Reading TAG Number from REG_TOUCH_TAG into 32bit tagval variable.
         tagoption = 0;                                    // tagoption will be used to show on the screen that the button is pressed or not
 
 if(tagval==30)                                 // TAG=30, Patient data requested by sending PID
 { tagoption = OPT_FLAT;//1 ;
  GD.cmd_fgcolor(0x000080);
  reqPID=1;
  //key_board();
  //GD.swap();
 // GD.finish();
  IsPenDown();
 }
        GD.Tag(30);
        GD.cmd_button(660,106,120,90,28,tagoption,"data by  PID");
        GD.cmd_fgcolor(0xc0c0c0);
        tagoption = 0;

///////////////////////////////////////////////////
 
if(tagval==31)                                 // TAG=31, Patient data requested by sending last name
 { tagoption = OPT_FLAT;//1 ;
  GD.cmd_fgcolor(0x000080);
  reqlname=1;
 // key_board();
  //GD.swap();
  //GD.finish();
  IsPenDown();
 }
        GD.Tag(31);
        GD.cmd_button(660,106+110,120,90,28,tagoption,"data by  lname");
        GD.cmd_fgcolor(0xc0c0c0);
        tagoption = 0;

///////////////////////////////////////////////////

//GD.swap();//end the display list
GD.finish();
GD.End();


if(reqPID)          // if button was pressed to request patient data by sending PID to the host.
{
  reqPID=0;
  key_board();
}

else if(reqlname)
{
  reqlname=0;
  key_board();
}

}


// ===Screen1 END ===========


// // //  Screen2 // // //
// -------------------------

void key_board()
{        int x = 0, w = 700, h = 65;
         uint16_t options = 0;
         uint8_t key = 0;      
         String kbstring ="";

         GD.cmd_dlstart();
 //        GD.SaveContext();
         GD.Clear(1,1,1);
         GD.ColorRGB(60,60,255);    // Top label strip

  // Show keys

  int y = 240;
  const char *rows[4] = { "0123456789", "QWERTYUIOP", "ASDFGHJKL", "@ZXCVBNM,."};

         tagval = GD.rd( REG_TOUCH_TAG);        //Reading TAG Number from REG_TOUCH_TAG into 32bit tagval variable.

         kbstring += tagval;
         sysser.println(kbstring);
         IsPenDown();
          
for (int i = 0; i < 4; i++)
  {
   //GD.cmd_keys(x, y, w, h, 24, options | OPT_CENTER | key, rows[i]);
    GD.cmd_keys(x, y, w, h, 24, 0, rows[i]);
    y += (h + 5);
  }

  
//GD.RestoreContext();

//GD.swap();
 GD.finish();
 GD.End();
 }

// ===Screen2 END ===========

Print this item

  GD3_ITA: Otro enfoque para usar el lector SDIO del teensy 3.5 o 3.6
Posted by:  TFTLCDCyg - 15-02-2018, 07:43 48 - Forum: Teensy - No Replies

Gracias al trabajo del forero anthonysavatar, presentado recientemente en el foro del gameduino 2/3, podemos tener acceso al manejo de imágenes desde el lector SDIO  del teensy 3.5/3.6 usando la librería SdFat.

Tomando como base los registros para FT81X, y algunos ajustes para el control de los pines de la pantalla, tenemos el siguiente avance:

GD3_ITA

PD: hacen falta algunos ajustes para poder usar el shield gameduino 3; la librería puede usarse para pantallas FT81X como las de Riverdi, HotMCU o de Newhaven

Print this item

  Reading slider position values
Posted by:  raufjay - 11-02-2018, 16:41 43 - Forum: Codigos - Replies (2)

Hello,

I want to control the screen brightness with the help of using a slider. So user can control the screen brightness.

I am using the following code:

uint16_t brtvalue;

GD.Tag(31);                               // Brightness slider tag number
        GD.cmd_text(150,120,18,0,"Brightness");
        GD.cmd_slider(150,100,180,8,0,50,100)  ;  // brightness, default value 50.
        GD.cmd_track(150,100,180,8,30);

I dont know how to read the current brightness value in the brtvalue integer.

Can you help me on this?

Thanks,

Rauf


Hello again,
Please also help me in reading Toggle switch values.
Thanks,
Rauf

Print this item

  Seleccionar imágenes de fondo mediante un teclado numérico
Posted by:  TFTLCDCyg - 11-02-2018, 07:14 10 - Forum: Codigos - Replies (2)

Algunas veces deseamos cambiar la imagen de fondo de nuestros proyectos. La forma mas simple consiste en cambiar el nombre del archivo en el código principal y cargar nuevamente el sketch.

Hacerlo en tiempo real no es tan complicado. Se puede realizar configurando la imagen de fondo como un botón que abarca la totalidad de la imagen. También se puede conseguir asignando un botón para avanzar o retroceder dentro de la base de imágenes en la tarjeta SD.

También podemos recurrir a un sistema extra: un teclado numérico. El ejemplo fué extraído de la app keyboard de FTDI y adaptado a las instrucciones de la librería para gameduino 2/3.

Apertura de archivos

Dado que la generación de un listado de archivos especificos en la librería SdFat está resultando dificil de conseguir en STM32, la base de archivos o el índice de archivos hay que crearlo manualmente. Para MCU como arduino y teensy, tenemos un generador de listado de archivos que funciona perfectamente para generar un listado de hasta 125 archivos.

La primer forma de conseguirlo es mediante un array de cadenas de texto con los nombres de los archivos:


Code:
char GrupoJPG0[7][15]={"6oBaa.jpg","6oBba.jpg","6oFb.jpg","6oGb.jpg","6oHaa.jpg","6oIaa.jpg","6oJa.jpg"};
//      0         1          2           3          4           5          6     


En este array tenemos una base de 7 archivos de imagen. Podemos agregar los archivos que deseemos. Hasta ahora he llegado a una base de 90 archivos. Se pueden usar archivos compatibles con el procesador FT81X: jpeg, jpg y png. El llamado del archivo se consigue usando la instrucción siguiente o una similar:


Code:
archivo = SD.open(GrupoJPG0[Identificador]); 
GD.cmd_loadimage(0, 0); 
GD.loadSdFat(archivo);

Donde identificador es el índice del array

Otra forma de obtener la base de archivos, consiste en asignar en el nombre de los archivos un prefijo y una secuencia de números, por ejemplo: IMG0001, éste formato nos permite aumentar sustancialmente el tamaño de base de archivos, sin tener que escribirlos manualmente en un array; con la capacidad de abarcar la totalidad de archivos contenidos en la tarjeta SD, claro siempre y cuando los nombremos con el formato asignado.

Para llamar a la imagen indizada, tenemos que usar una secuencia como esta:

Code:
snprintf(nombre, 30, "IMG%04d.jpg", identificador);
      String str(nombre);
      archivo = SD.open(str);      
      GD.cmd_loadimage(0, 0);
      GD.loadSdFat(archivo);

Donde identificador es el número de secuencia de la imagen

La variable global: identificador, es la clave para poder habilitar un teclado numérico que nos permita navegar en la base de archivos de imagen

Sigue: el teclado numérico 

Print this item