Ansluta Nokia 3310 LCD till USB med hjälp av AVR (8 / 9 steg)
Steg 8: Skriva till displayen från host-programvaran
Skriva till displayen är mycket lätt och förklaras här.All kommunikation med enheten sker med funktionen SendData (int begäran, int data). Denna funktion är faktiskt en kortsluten version av en funktion som heter usb_control_msg. Vi använder den kortsluten versionen eftersom usb_control_msg är verkligen lång och rörig. (The SendData funktionen definieras i filen USBFunctions.cpp.)
Jag har definierat alla begäran koderna jag har gjort med namn, men du kan använda siffror om du vill.
Om du vill skriva pixlar på skärmen, använda funktionen SendData ( SEND_DATA, data) och Ersätt "data" med en 1 byte int. Detta kommer att skriva 8 pixlar på den nuvarande XY läget. Tänk på att det taks lång tid att skriva en massa pixlar på skärmen med den här metoden. Om du vill rita många pixlar riktigt snabbt, bör du bädda in koden på chip själv.
Att skicka ett kommando, Använd funktionen SendData ( SEND_COMMAND, data) och Ersätt "data" med ett kommando
(Se LCD dataseet för kommandon, sidan 14)
Att rensa skärmen, använda funktionen SendData ( SEND_CLEAR, 0) . Detta gör AVR oavgjort 0 till alla pixlar på skärmen. Det är mycket snabbare att låta AVR göra detta, än att göra det manuellt via host-programvaran. Detta måste naturligtvis inga extra data då begäran själv.
Om du vill ange ett XY läge att skriva till, användning SendData ( SEND_XY, (y << 8) + x). Ersätta Y med ett tal mellan 0 och 5, och X med ett tal mellan 0 och 83. Detta skickar 2 byte till AVR, och det är därför vi flytta Y av 8 (så Y-värde är vid den 2: a byten).
Att skicka ett ASCII-tecken på skärmen, använda SendData ( SEND_CHAR, data). Observera att tecken måste vara enkla citattecken, t.ex.: SendData (SEND_CHAR, "A").
Om du vill skriva en massa tecken, kan du lagra strängen i en matris och använda en loop, såhär:
unsigned char buffer [] = {"min STRING12341! \n"};
för (int j = 0; j < sizeof (buffert) -1; ++ j) {
SendData (SEND_CHAR, buffer[j]);
}
Observera att du kan använda newline ( \n ) för att hoppa till nästa rad på Y-axeln. Det kommer att spara en massa problem.