Stap 8: Schrijven om de weergave van hostsoftware
Wegschrijven naar het display is zeer eenvoudig, en uitgelegd hier.Alle communicatie met het apparaat wordt gedaan met de functie SendData (int verzoek, int data). Deze functie is eigenlijk een kortgesloten versie van een functie met de naam usb_control_msg. Wij gebruiken de kortgesloten versie omdat de usb_control_msg echt lang en rommelig is. (The SendData functie is gedefinieerd in het bestand USBFunctions.cpp.)
Ik alle codes van het verzoek die ik met namen gemaakt heb hebt gedefinieerd, maar u kunt getallen als je wilt.
Als u wilt schrijven pixels op het scherm, gebruikt u de functie SendData ( SEND_DATA, data) , en de "gegevens" te vervangen door een 1-byte int. Dit zal 8 pixels op de huidige locatie van de XY schrijven. Houd er rekening mee dat het taks een lange tijd om te schrijven een heleboel pixels naar het scherm met behulp van deze methode. Als u tekenen van vele pixels echt snel wilt, moet u deze code op de chip zelf insluiten.
Voor het verzenden van een opdracht, gebruikt u de functie SendData ( SEND_COMMAND, data) , en de "gegevens" te vervangen door een opdracht
(Zie de LCD-dataseet voor opdrachten, pagina 14)
Wissen van het scherm, de SendData ( SEND_CLEAR, 0) -functie te gebruiken. Hierdoor wordt de AVR loting 0 om alle pixels op het scherm. Het is veel sneller te laten de AVR hiervoor, dan doet het handmatig via de hostsoftware. Dit moet uiteraard geen extra gegevens vervolgens het verzoek zelf.
Als u opgeven een XY-locatie om te schrijven wilt, gebruik SendData ( SEND_XY, (y << 8) + x). Vervang Y met een getal tussen 0 en 5, en de X door een getal tussen 0 en 83. Dit stuurt 2 bytes naar de AVR, en dat is de reden dat we verschuiven de Y door 8 (de Y-waarde is dus bij het 2de byte).
Gebruiken voor het verzenden van een ASCII-teken op het scherm, SendData ( SEND_CHAR, data). Tekens moeten bestaan uit enkele aanhalingstekens, bijvoorbeeld: SendData (SEND_CHAR, 'A').
Als u schrijven een heleboel tekens willen zou, kunt u de tekenreeks in een array opslaan en gebruiken van een lus, zoals dit:
unsigned char [] buffer = {"mijn STRING12341! \n"};
for (int j = 0; j < sizeof (buffer) -1; ++ j) {}
SendData (SEND_CHAR, buffer[j]);
}
Merk op dat u de nieuwe regel ( \n ) gebruiken kunt om te springen naar de volgende regel op de Y-as. Het bespaart u een hoop moeite.