Paso 11: Ejemplos - solo texto con desplazamiento
En esta ocasión vamos a mostrar la zona que contiene el texto que se desplaza
de izquierda a derecha.
Para no analizar código (Arduino sketch):
Display *disp;ScrollingText8x8 *message; const char *textMessage; void setup() { util_setup(); log_setup(); ss = createSS(); disp = new Display(8, 3, ss); disp->setup(); message = new ScrollingText8x8(disp, 48, 50, 5); message->init(); textMessage = "This is an example of multiple scorlling areas ;)"; message->scroll(8, 8, ScrollingText8x8::LOOP, textMessage); } void loop() { util_cycle(); log_cycle(); message->cycle(); disp->flush(); }
La inicialización de la pantalla es igual que en ejemplos anteriores, por lo que se omite aquí.
Con el fin de mostrar el texto desplazable estamos utilizando ScrollingText8x8. En setup() estamos creando la instancia de esta clase y llamar el método scroll(...). Esta parte sólo inicializa el desplazamiento, pero no reproduce la animación sí mismo. Para reproducir la animación tienes que llamar cycle() y flush() en bucle principal y no debe tener ningún retraso adicional allí, de lo contrario podría obtener animación irregular.
Durante la creación de ScrollingText8x8 hemos incluido velocidad de animación - en realidad es un lapso de 50ms por fotograma. Ahora llamando al cycle() en bucle principal producirá marcos de animación según retraso proporcionado. Cuando llegue el momento el método cycle() se actualización de pantalla y por último el método flush() enviará contenido actualizado a chips MAX.
La aplicación entera de ScrollingText8x8 es no bloquear y consume CPU sólo cuando hay algo que hacer. Internamente está utilizando la máquina de estado simple.
Hay una última cosa: usted tiene que tener texto para animación en variable global con el fin de evitar la recolección de basura. No se está copiando en scroll() para evitar la fragmentación de memoria.