Paso 8: Escribir en la pantalla de software de host
La escritura a la pantalla es muy fácil y explicado aquí.Toda comunicación con el dispositivo se realiza con la función SendData (petición de int, int datos). Esta función es realmente una versión en corto de una función denominada usb_control_msg. Utilizamos la versión en corto porque la usb_control_msg es muy largo y desordenado. (SendData la función se define en el archivo USBFunctions.cpp.)
He definido todos los códigos de petición que he hecho con los nombres, pero si lo desea puede usar números.
Si quieres escribir píxeles a la pantalla, utilice la función SendData ( SEND_DATA, datos) y sustituir los "datos" con un int de 1 byte. Esto escribirá 8 píxeles en la ubicación actual de XY. Tenga en cuenta que es taks mucho tiempo para escribir un montón de pixeles en la pantalla utilizando este método. Si desea dibujar muchos píxeles realmente rápidos, debe incorporar ese código en la viruta sí mismo.
Para enviar un comando, utilice la función SendData ( SEND_COMMAND, datos) y sustituir los "datos" con el comando
(Ver la dataseet de LCD para comandos, página 14)
Para borrar la pantalla, utilice la función SendData ( SEND_CLEAR, 0) . Esto hará que el sorteo AVR 0 a todos los píxeles en la pantalla. Es mucho más rápido que el AVR hagan, que hacerlo manualmente a través de software de host. Obviamente esto no necesita ningún dato extra entonces la solicitud sí mismo.
Si desea especificar una ubicación de XY para escribir, uso SendData ( SEND_XY, (y << 8) + x). Sustituir la Y con un número entre 0 y 5 y la X un número entre 0 y 83. Esto envía a 2 bytes para el AVR, y que es la razón por la que cambiar la Y por 8 (por lo que el valor de Y está en el 2 º byte).
Para enviar un carácter ASCII en la pantalla, Utilice SendData ( SEND_CHAR, datos). Observe que caracteres deben estar en comillas simples, por ejemplo: SendData (SEND_CHAR, 'A').
Si desea escribir muchos caracteres, puede almacenar la cadena en una matriz y utilizar un bucle como este:
unsigned char buffer [] = {"mi STRING12341!!" \n"};
para (int j = 0; j < sizeof (almacenador intermediario) -1; ++ j) {}
SendData (SEND_CHAR, buffer[j]);
}
Tenga en cuenta que puede utilizar la nueva línea ( \n ) para saltar a la siguiente línea en el eje Y. Le ahorrará un montón de problemas.