La mejor práctica para actualizar los datos en la pantalla LCD

3

Actualmente estoy leyendo valores de ADC y visualizándolos en la pantalla LCD. El ADC es compatible con DMA. Ahora mi sistema tiene 5 menús vistos en LCD (Voltaje, Corriente, Resistencia, Configuración). 3 de ellos deberían mostrar el valor de ADC con ~ 1 fps.

¿Cuáles son las mejores prácticas para actualizar los marcos de LCD?

¿Debo implementar un temporizador y actualizar toda la pantalla LCD en cada desbordamiento? ¿O debería simplemente actualizar ese número?

O shomehow else?

¿Cuáles son las mejores prácticas de crear menús?

    
pregunta SharkyLV

2 respuestas

2

El mejor enfoque para actualizar una pantalla LCD depende de una variedad de factores que incluyen la cantidad de RAM disponible, la velocidad de comunicación con el controlador LCD, el tipo de actualizaciones que el controlador puede acomodar y la medida en que la pantalla puede ser divididas lógicamente en regiones rectangulares no superpuestas que pueden manejarse por separado. Ningún enfoque único será óptimo para todas las situaciones.

El aspecto más importante de intentar obtener actualizaciones de apariencia clara es probablemente garantizar que cualquier región que contenga contenido particular antes de una actualización, y que debe tener ese mismo contenido después de la actualización, mantenga ese mismo contenido durante toda la actualización. Si borra una región de la pantalla y luego dibuja en ella las cosas que ya estaban allí, eso es notable. Es mucho mejor dejar en paz las partes de la pantalla que no cambian, o asegurarte de que nunca se dibujen con nada que no sea su contenido final.

Un enfoque que a veces he encontrado útil es dividir la pantalla en tiras y tener un búfer de RAM que sea lo suficientemente grande como para manejar dos tiras. Las cosas se pueden dibujar en trozos que son una tira alta, superponiendo los dos búferes. Luego envíe un búfer, copie el inferior al superior y borre el inferior, y repita. La rutina completa de "pantalla de dibujo" se repite para cada tira, pero las funciones cuyos efectos están completamente fuera de la tira actual regresan rápidamente.

    
respondido por el supercat
1

Depende de la aplicación y del LCD.

Si la mayoría de la pantalla cambia regularmente (por ejemplo, formas de onda o imágenes), escribir todo a la vez x veces por segundo es la forma "habitual" de hacerlo. Puede duplicar el búfer y configurar el siguiente fotograma a medida que se escribe el actual: su DMA puede cambiar entre los búferes automáticamente. Si solo es 1 FPS, y hay algunas cosas que están cambiando, creo que lo mantendría simple y lo actualizaría a cada segundo.

Si solo tiene una pequeña parte de la actualización (por ejemplo, unos pocos dígitos en un fondo estático), puede ser más económico actualizar esta área y dejar el resto. Incluso puede realizar una comprobación de diferencias entre los dos cuadros y solo alterar los píxeles que deben cambiarse si desea ser lo más económico posible con las escrituras.
Diferentes pantallas tienen diferentes características para seleccionar bits de la pantalla y opciones de memoria para el almacenamiento en búfer. Algunos pueden tener características bastante complejas y útiles, y otros son muy simples y no tan flexibles.

Dependiendo de la frecuencia con la que tengan datos nuevos y si hay una parte "solo de menú" de su aplicación, es posible que desee usar la opción anterior para sus menús, y simplemente actualizarlos cuando sea necesario cuando algo cambie. Por lo tanto, se podría usar una combinación de ambas opciones (suponiendo que tenga formas de onda y menús)

    
respondido por el Oli Glaser

Lea otras preguntas en las etiquetas