Re: EA DIP128 Display ansteuern Kategorie: Sonstige Hardware (von André H. - 25.03.2007 17:27) | ||
Als Antwort auf EA DIP128 Display ansteuern von wernerAZ - 18.03.2007 12:57 | ||
| ||
Hallo Werner, Zuerst: Verwende bitte die Code-Tags, und das bitte so, wie es oberhalb des Eingabefeldes angegeben ist. Also: <code> C2-Quellcode </code> Daraus wird dann: C2-Quellcode Ohne irgendeine Formatierung, wie auch übersichtliches Einrücken, macht es keinen Spa� Quellcode zu lesen. Daher habe ich mir Dein Programm nicht näher angesehen. Ich selbst habe kein EA DIP128 Grafikdisplay. Ich verwende bei Grafik gleich eines der eDIPs. Das ist einfacher und portsparender. Denn bei Grafik-LCDs wird's komplizierter als bei Text-LCDs. Zunächst brauchst Du immer einen 8Bit-Datenbus. Dann kommen noch Steuerleitungen hinzu. Neben RS(Register-Select),R/W und Enable hast Du noch weitere Steuerleitungen. Bei 128x64-Displays existieren meist noch zwei CS-Leitungen, da das LCD in eine linke und in eine rechte Hälfte unterteilt ist. Du solltest zu allererst den korrekten Anschlu� des Displays überprüfen. Dazu hilft Dir das Datenblatt sicher weiter. MfG André H. > Hallo, > mein Versuch das LCD anzusteuern ist fehlgeschlagen. > Bekomme kein einziges Pixel auf Display. > Anbei mein Versuch. > Was mache ich falsch? > code > function rst() > { > ports.set(13,0); //Reset > sleep 10; > ports.setb(0,0x11100000); > } > function status() > { > int stat; > ports.set(11,0); //E2 > ports.set(12,1); //E1 > ports.set(13,1); //Res > ports.set(14,0); //D/I > ports.set(15,1); //R/W > stat=ports.getb(0); //Datenleitungen lesen > sleep 10; > ports.set(12,0); //E1 > ports.setb(0,stat); > sleep 1000; > } > function befehl(int data) > { > ports.setb(0,data); > ports.set(11,0); //E2 > ports.set(12,1); //E1 > ports.set(13,1); //Res > ports.set(14,0); //D/I > ports.set(15,0); //R/W > sleep 10; > ports.set(12,0); > ports.set(14,1); > ports.set(15,1); > } > function schreiben(int data) > { > ports.setb(0,data); > ports.set(11,0); //E2 > ports.set(12,1); //E1 > ports.set(13,1); //Res > ports.set(14,1); //D/I > ports.set(15,0); //R/W > sleep 10; > ports.set(12,0); > ports.set(14,1); > ports.set(15,1); > } > function lesen() returns int > { > int x; > ports.set(11,0); //E2 > ports.set(12,1); //E1 > ports.set(13,1); //Res > ports.set(14,0); //D/I > ports.set(15,1); //R/W > ports.getb(0); > sleep 10; > ports.set(12,0); > ports.set(14,1); > ports.set(15,1); > return x; > > } > thread main > { > int d; > status(); > rst(); //Reset > plm.beep(1); > status(); > befehl(0x00111111); //Display on > plm.beep(2); > status(); > befehl(0x00111110); //Display off > plm.beep(3); > status(); > befehl(0x00111111); //Display on > plm.beep(4); > status(); > befehl(0x11000001); //Zeile 1 > plm.beep(5); > status(); > befehl(0x10111000); //Page 0 > plm.beep(6); > status(); > befehl(0x01000011); //Spalte 3 > plm.beep(7); > status(); > for d=0 ... d<50 > { > schreiben(0x11001010); //schreibe auf Display-Ram(Position) > } > plm.beep(8); > status(); > d=lesen(); //Display auslesen > plm.beep(9); > status(); > ports.setb(0,d); //Wert auf LEDs > plm.beep(10); > sleep 3000; > befehl(0x11000001); //Zeile 1 > plm.beep(5); > status(); > befehl(0x10111000); //Page 0 > plm.beep(6); > status(); > befehl(0x01000011); //Spalte 3 > plm.beep(7); > status(); > d=lesen(); //Display auslesen > plm.beep(9); > status(); > ports.setb(0,d); //Wert auf LEDs > plm.beep(10); > sleep 3000; > plm.beep(-1); > loop > { > } > > } > /code > Bitte heft mir. > Gru� Werner Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: Re: EA DIP128 Display ansteuern (von wernerAZ - 26.03.2007 10:18) |