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.
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.