Guten Tag zusammen,
ich habe ein Problem mit dem Display!
Ich betreibe das Display (noch) im Charaktermodus weil ich zunächst erstmal einfach testen wollte wie es so funktioniert und es funktioniert gut auch das Touchscreen arbeitet gut ABER ich kann einfach ums verrecken nicht in die Zeilen unterhalb von 7! Siehe Foto!
(Normalerweise soll genau so weiter geschrieben werden 8,9,10)
Bild hier
Ich verstehe es nicht. Oberhalb der 8 Zeile kann ich wunderbar springen sowohl horizontal als auch vertikal. Ein zweites Display habe ich auch schon getestet, das selbe Verhalten!
So initialisiere ich das Display:
Code:void GLCD_Init_C(void) { GLCD_RES=0; Delay10KTCYx(1); GLCD_RES=1; GLCD_writecom(0x00); // Mode Con GLCD_writedata(0x3C); // Character Mode, Cursor blink GLCD_writecom(0x01); // Character Pitch GLCD_writedata(0x77); // 8x8 Chars GLCD_writecom(0x02); // Number of Characters GLCD_writedata(19); // 19 Zeichen <---> GLCD_writecom(0x03); // Set Duty GLCD_writedata(0x4F); // 80-1 GLCD_writecom(0x04); // Cursor Position GLCD_writedata(0x07); // Line 1 GLCD_writecom(0x08); // Start Adresse Low GLCD_writedata(0x00); // 0 GLCD_writecom(0x09); // Start Adresse High GLCD_writedata(0x00); // 0 GLCD_writecom(0x0A); // Cursor lower adress GLCD_writedata(0x00); // 1 GLCD_writecom(0x0B); // Cursor upper adress GLCD_writedata(0x00); // 1 }
So stelle ich die Adresse ein:
Die Routinen zum Schreiben auf dem Display:Code:void GLCD_SetAdress(unsigned char x, unsigned char y) { unsigned short adress; adress=y*20+x; GLCD_writecom(0x0A); // write adress low GLCD_writedata(adress&255); GLCD_writecom(0x0B); // write adress high GLCD_writedata(adress/256); }
Ich hoffe sehr, dass mir irgendwer von euch helfen kann ich verstehe es einfach nicht..Code:void GLCD_writedata(unsigned char info) { GLCD_RS=0; GLCD_write(info); } void GLCD_writecom(unsigned char info) { GLCD_Busy(); GLCD_RS=1; GLCD_write(info); } void GLCD_write(unsigned char info) { GLCD_RW=0; GLCD_Data=info; Delay10TCYx(1); GLCD_Enable(); } void GLCD_Busy(void) { GLCD_RW=1; GLCD_RS=1; GLCD_Enable(); TRISD=0x80; while(LATDbits.LATD7){} TRISD=0x00; } void GLCD_Enable(void) { GLCD_E=1; Delay10TCYx(1); GLCD_E=0; }
LG Nico







Zitieren

Lesezeichen