Autor Tema: Velocidad GLCD 128x64  (Leído 1951 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado mechatronic24

  • PIC10
  • *
  • Mensajes: 11
Velocidad GLCD 128x64
« en: 24 de Julio de 2018, 12:05:48 »
Saludos,

Actualmente me encuentro trabajando en un menu LCD y aunque anteriormente quería hacer funcionar la liberia del ST7290 a 64MHz, me comentaron que a como estaba a 20MHz es mas que suficiente para que funcione todo bien, ahora me encontré con el detalle de que el menú se desplaza "lento" y me gustaría saber si ese sería un detalle en sentido de que el codigo es "pesado" o internamente el LCD no da para más?

Gracias.

 :-/

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Velocidad GLCD 128x64
« Respuesta #1 en: 24 de Julio de 2018, 12:41:03 »
Citar
quería hacer funcionar la liberia del ST7290 a 64MHz, me comentaron que a como estaba a 20MH

si usa delays, si lo pones a 64Mhz va a ser lo mismo. ya que un delay_us(10) son 10us a 20Mhz y 10us a 64Mhz.
Si en algun lado NO posee delay suponiendo que a 20Mhz el tiempo de cambio debido a la velocidad del micro cumple con las especificaciones del datasheet, entonces ahi vas a tener que revisar la libreria y agregarle el delay que se necesite.

Citar
ahora me encontré con el detalle de que el menú se desplaza "lento" y me gustaría saber si ese sería un detalle en sentido de que el código es "pesado" o internamente el LCD no da para más?

Depende que estas haciendo puede ser pesado o no. Lo que define el máximo de velocidad es el LCD, de alli para abajo es tu programa, si tu programa es lento vas a ver que el LCD es lento.
Ahora si estas al máximo de velocidad en las funciones de envió de datos el cual envié en bloque y no punto a punto. Deberías ver si la "animación" que tratas de realizar tal ves sea muy exigente y deberias tratar de mejorar, optimizar la funcion.

En fin, muchos puntos que pueden salir mal o influir en el tiempo. El asunto es que determines donde esta el problema.
Para ver donde esta los problemas podes ver:
- el codigo donde se envia cada punto
- cargar en bloque y no punto a punto. ( Ver si la libreria lo tiene a estas funciones )
- Si tenes un osciloscopio podes ver el pin E, para ver la velocidad que va cada byte al LCD y masomenos ver si es tu programa el lento.

Y como soluciones:
- Tratar de crear una especie de menu mas simple. Ejemplo no pintar toda la seleccion del menu, ni animarlo, sino que sea una flecha la cual se mueve nomas.
- No escribir letra por letra, sino usar un buffer escribirlo alli y luego enviar las cosas, asi no se debe estar cambiando la direccion a cada rato ahorrando ese cambio y solamente enviando.

Desconectado mechatronic24

  • PIC10
  • *
  • Mensajes: 11
Re:Velocidad GLCD 128x64
« Respuesta #2 en: 26 de Julio de 2018, 17:56:31 »
Saludos KILLERJC,

Estuve checando lo que me comentaste y lo que hice fue reducir mi código de 71% de RAM a 50%, también lo que me comentaste de cargar en bloques como tal ya lo hacía y aún con todo eso, no se distingue si el menú se desplaza más rápido.

Por otro lado, en una placa perforada tenia el micro con un cristal externo a 20MHz pero al momento de pasar el micro a otra placa perforada con las mismas caracteristicas, se veía en el mismo display que mandaba unos pixeles de más (cosa que no hacia en la primera placa) y la solución para poder trabajar en la segunda placa (que debe de ser la final, no puedo usar la primera), fue cambiar el cristal por uno de 16 MHz y comprobando tu punto, probé en la segunda placa el mismo programa pero con el oscilador interno a 4 MHz y no me dio ningun problema en las imagenes y no se movia ni mas rapido ni mas lento el desplazamiento del menu.

Entonces estoy pensando que la velocidad que veo en el display al momento de desplazar el menu, es la maxima que me permite presentar.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Velocidad GLCD 128x64
« Respuesta #3 en: 26 de Julio de 2018, 18:25:20 »
Citar
de RAM

La RAM no es el problema, es el ROM, delays, etc que tengas en las funciones del LCD.

El que varies la frecuencia y no cambie la velocidad de actualizacion del LCD quiere decir que el codigo lo esta frenando,
¿Las funciones de escritura respetan los tiempos minimos que exige el driver del LCD?

Desconectado mechatronic24

  • PIC10
  • *
  • Mensajes: 11
Re:Velocidad GLCD 128x64
« Respuesta #4 en: 26 de Julio de 2018, 18:48:18 »
Estoy usando el 10% de ROM del micro y los delays en las funciones de la libreria del LCD son de 1 micro segundo.

En código respeto los tiempos minimos como dice la hoja de datos, aunque considero que deberia probar aumentando esos tiempos porque probe agregando delays en las funciones y se seguia comportando igual, posteriormente... puse el osciloscopio al pin Enable del LCD y cuando mando a escribir veo una frecuencia entre 50 y 100 Hz.