Autor Tema: C18: Librería para creación de menús en GLCD 128x64.  (Leído 24737 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
C18: Librería para creación de menús en GLCD 128x64.
« en: 02 de Marzo de 2010, 00:57:15 »
En un proyecto que desarrollo necesito implementar un menú en una pantalla GLCD 128x64, buscando por la red encontré este excelente proyecto en el que utilizan un display Nokia 6100. A partir de esa librería, me dedique a entender como trabaja y tomando su estructura re-escribí la librería para un GLCD monocromático  :(  :D :D

Para crear un elemento del submenú tenemos la siguiente estructura:
Código: [Seleccionar]
typedef struct{
char TipoMenu;
rom char *TextoMenu;
rom char *PtrMenuSeleccion;
}MENU;

Un ejemplo en la creación de un Submenú:
Creamos Menú principal:
       
  • El primer elemento direcciona al volver atrás en el submenú:
  • MENU_MAIN o SUBMENU_ANTERIOR: Regresa a pantalla principal o a un submenú anterior.
          
  • vInicializaSistemaDisplay: Función a ejecutar al regresar atrás.-
       
  • Segundo elemento: Primer ítem del menú a crear:
  • MENU_SUBMENU: Indica que al seleccionar este se debe crear otro submenú.
          
  • "Sub Menu": Texto del ítem.-
          
  • SubMenu1: Submenú a crear y dibujar.-
       
  • Tercer elemento: Segundo ítem del menú a crear:
  • MENU_COMANDO: Indica que al ejecutar tal ítem se ejecuta una función.-
          
  • "Control Motor": Texto del ítem.
          
  • vControlMotor: Función que se ejecuta, puede generar una pantalla con mensaje, barra deslizante o nada.-
       
  • Sexto elemento: Elemento que indica finalización del menú.-
Código: [Seleccionar]
MENU MenuPrincipal[]={
{MENU_MAIN,"",vInicializaSistemaDisplay},
{MENU_SUBMENU,"Sub Menu",SubMenu1},
{MENU_COMANDO,"Control Motor",vControlMotor},
{MENU_COMANDO,"Backlight",vControlBack},
{MENU_COMANDO,"About",vMuestraAbout},
{MENU_FIN,"",0}
};

El programa está controlado por medio de punteros a la memoria de programa. Por ejemplo en el bucle del programa principal (main), ejecuta una función (vEjecutaFuncion(Evento)) apuntada por el puntero *FuncionActualEjecucion, el cual direcciona las distintas funciones que trabajan con los eventos en las distintas pantallas presentadas en el GLCD.
Por ejemplo al dibujar la pantalla principal cargamos en puntero la función vEventosPantallaPrincipal, la cual atenderá los eventos, en este caso solo se espera a que se pulse el botón inferior derecho para acceder al submenú.


Al clickear en menú ejecutamos la función vSeleccionMenu(MenuPrincipal,1) que dibujará el Menú seleccionado y volverá a direccionar el puntero a la función vEventosSubMenu, la cual atiende los eventos que ocurran en el menú dibujado en pantalla. Es mas o menos un resumen de cómo trabaja el código.

Dentro de las opciones de menús del tipo comando tenemos:

Visualizar mensaje simple:

Visualizar opción a ejecutar:

Visualizar deslizador para modificar una variable:

Visualizar una variable:

Vídeo de muestra: (El video no muestra la ultima opción de menú, lo desarrolle después  :mrgreen: )

Se adjunta proyecto con el ejemplo mostrado. Al ser flexible, se pueden ir agregando otras opciones de menús.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Felixls

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 300
Re: C18: Librería para creación de menús en GLCD 128x64.
« Respuesta #1 en: 02 de Marzo de 2010, 01:03:34 »
Excelente Suky!   :-/ :-/

Una pregunta, si o si necesita 1k de ram, o no?

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: C18: Librería para creación de menús en GLCD 128x64.
« Respuesta #2 en: 02 de Marzo de 2010, 01:05:30 »
Excelente Suky!   :-/ :-/

Una pregunta, si o si necesita 1k de ram, o no?

Es para manejo de la pantalla, más velocidad en la presentación. Si se escribe en la pantalla, pixel por pixel, se puede hacer bastante lento  :?
No contesto mensajes privados, las consultas en el foro

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: C18: Librería para creación de menús en GLCD 128x64.
« Respuesta #3 en: 02 de Marzo de 2010, 02:00:37 »
Muy útil y sencillo. Cada vez que necesito menús me pongo a escribirlos desde cero, así que esta librería seguro que es un magnífico punto de partida.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: C18: Librería para creación de menús en GLCD 128x64.
« Respuesta #4 en: 02 de Marzo de 2010, 13:45:30 »
Está interesante la librería.

Veo que hay faltas de ortografía en las pantallas, ¿no acepta código ascii completo la librería?

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: C18: Librería para creación de menús en GLCD 128x64.
« Respuesta #5 en: 02 de Marzo de 2010, 14:29:50 »
Muy útil y sencillo. Cada vez que necesito menús me pongo a escribirlos desde cero, así que esta librería seguro que es un magnífico punto de partida.

Exactamente eso, un punto de partida donde se puede ir haciendo muchas mas cosas.

Veo que hay faltas de ortografía en las pantallas, ¿no acepta código ascii completo la librería?

 :oops:  :D :D jeje! En realidad los caracteres está guardado en una tabla en memoria de programa, y solo están desde el Espacio hasta ~  :mrgreen: Con un poco de trabajo se puede implementar  ;-)

Saludos!
« Última modificación: 02 de Marzo de 2010, 14:35:02 por Suky »
No contesto mensajes privados, las consultas en el foro

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: C18: Librería para creación de menús en GLCD 128x64.
« Respuesta #6 en: 05 de Marzo de 2010, 14:22:49 »
gracias Suky, andaba necesitando algo como esto para no hacer desde cero los menus de algunos proyectos.
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado manutek

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 555
Re: C18: Librería para creación de menús en GLCD 128x64.
« Respuesta #7 en: 16 de Julio de 2010, 03:17:52 »
Gracias suky ,y como siempre exelente calidad la tuya¡¡¡
No es la conciencia del hombre la que determina su ser, sino, por el contrario, es su ser social el que determina su conciencia

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: C18: Librería para creación de menús en GLCD 128x64.
« Respuesta #8 en: 04 de Enero de 2011, 00:28:37 »
Bueno, ahora que tengo un TFT con Touch Screen estoy actualizando, en realidad migrando y mejorando la librería  :rolleyes: Algunas imagenes:


Con 2 opciones de visualización de items, iconos o botones   :-)

Saludos!  

PD:Pero todavía no he implementado los acentos  :oops:  :D :D :D :D
No contesto mensajes privados, las consultas en el foro

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: C18: Librería para creación de menús en GLCD 128x64.
« Respuesta #9 en: 04 de Enero de 2011, 02:49:13 »
¡Chulísimo, Suky!.
¿Utilizas las librerías de gráficos de Microchip o las has creado desde cero?

P.D.: ahora entiendo tu interés por las truetype  :mrgreen:

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: C18: Librería para creación de menús en GLCD 128x64.
« Respuesta #10 en: 04 de Enero de 2011, 09:59:11 »
¡Chulísimo, Suky!.
¿Utilizas las librerías de gráficos de Microchip o las has creado desde cero?

P.D.: ahora entiendo tu interés por las truetype  :mrgreen:

Gracias!
Es todo desde cero porque estoy utilizando el mbed con LPC1768  :) Gracias por la info de las truetype, tengo que ver como utilizarlas así agrego más fuentes.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: C18: Librería para creación de menús en GLCD 128x64.
« Respuesta #11 en: 05 de Enero de 2011, 01:28:41 »
CAPO!

excelente suky, que gran trabajo, como siempre luciendote!

 :-/ :-/
.

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: C18: Librería para creación de menús en GLCD 128x64.
« Respuesta #12 en: 05 de Enero de 2011, 19:35:16 »
joder  Suky desde luego... solo falta ya crear el transbordador espacial, seleccionar a 7 u 8 pilotos... y enviarlos a marte...
Muy buen trabajo y aporte... lastima que no tenga ninguna pantallita de esas tan monas jejejjee me tocara conformarme aun con el lcd ...
un saludo
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: C18: Librería para creación de menús en GLCD 128x64.
« Respuesta #13 en: 05 de Enero de 2011, 20:00:43 »
Muchas gracias a todos!! Por aquí un video donde se muestra algo, en realidad el fin del vídeo es mostrar el juego Simons Says  :mrgreen:



Medio feo, pero bueno  :oops:


Saludos!

No contesto mensajes privados, las consultas en el foro

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: C18: Librería para creación de menús en GLCD 128x64.
« Respuesta #14 en: 05 de Julio de 2011, 14:38:07 »
Excelente libreria!!
Estoy tratando de usar solamente la parte del GLCD.
Puse en mi proyecto DriverGLCD.c y DriverGLCD.h. Llamo a la funcion vGLCD_Iniciar, la parte de los TRIS y valores de CS1, CS2, RST, E , RW y DI lo hace a la prefeccion. El problema esta al momento de llamar a vGLCD_Escritura_Byte. El lado lo pasa bien, pero en la variable Data la que se la asigna al puerto D para ir a los D0...D7 esta siempre en cero, como que desde la funcion de inicializacion a la de escritura de byte no pasa elvalor de Data. Alguna idea porque puede ser??

Edito: Tampoco pasa lado.
« Última modificación: 05 de Julio de 2011, 14:42:34 por aripod »


 

anything