Hallo, ich habe ein bereits bestehendes funktionierendes Programm umgestrickt. Bisher war es für ein "Standard" 16x2 Display geschrieben. Jetzt möchte ich ein DOGM081 Display betreiben und habe versucht die Initialisierung anzupassen. Leider klappt das nicht ganz. Nur ein bißchen. Die Ausgabe "A" sieht so aus " oa" Verschiebe ich den Cursor von 0,1 auf 1,1 dann wandert das auch nach rechts. 2,1 oder andere Positionen sind nicht effektiv. Was ich auch nicht verstehe, daß ich bei der Cursor-Zeile 0x40, was eigentlich die zweite Zeile sein müsste, verwenden muß. Bei 0x00 kommt gar nichts. Die Ausgabe ist stabil. Und bei anderen Buchstaben kommen auch andere Zeichen. Daher glaube ich jetzt mal, daß es kein Verdrahtungsproblem ist. Leider bin ich ein absoluter Anfänger und finde den Fehler einfach nicht. Kann hier mal jemand über den C-Code schauen, ob er was findet ? Ich hoffe, es ist einigermaßen lesbar. Viele Grüße Tobi
Edit: Vergessen. Ich verwende das Display im 4-Bit Modus. Attiny 2313. Ups. Und sorry für zwei Attachments. Ist beides Mal das Gleiche.
Hi >Leider bin ich ein absoluter Anfänger und finde den Fehler einfach >nicht. Und dann nimmst du die idiotischste Ansteuerung, die ein Dog-Display zu bieten hat. SPI ist wesentlich simpler. Was mir aufgefallen ist: Du hast am Anfang der Initialisierung nur eine Wartezeit von 15ms. Das Datenblatt vom ST7036 verlangt aber 40ms. MfG Spess
Hallo Spess, der Grund dafür ist der, daß die Schaltung schon fix und fertig aufgebaut ist. (gedruckte Schaltung) Leider klappts auch nicht mit 100ms vor der ersten Nachricht. VG Tobi
Hi >der Grund dafür ist der, daß die Schaltung schon fix und fertig >aufgebaut ist. (gedruckte Schaltung) Na und. Es werden doch keine anderen Leitungen als im 4-Bit-Mode benutzt. Übrigens, diese Zeile ist auch etwas merkwürdig: > case 1: tmp=0x80+0x40+x; break; // 1. Zeile MfG Spess
spess53 schrieb: > Na und. Es werden doch keine anderen Leitungen als im 4-Bit-Mode > benutzt. Daran siehst Du mal, wie wenig Ahnung ich eigentlich hab... rotwerd Hm, diese Zeile stammt aus einem 16x4-Display Teil. Ich dachte, daß die 0x40 je Zeile drauf addiert werden. Erstaunlicherweise funktioniert diese Routine garnicht, wenn ich die Zeile "0" verwende. (also nur 0x80+x)
Hi >Hm, diese Zeile stammt aus einem 16x4-Display Teil. >Ich dachte, daß die 0x40 je Zeile drauf addiert werden. Mit 'lcd_command(0x29);' initialisierst du ein 2-Zeiliges Display MfG Spess
Hi, uhhhh. Da hast Du recht. Jetzt wo Du es gesagt hast, kann ich die entsprechende Table of Command auch verstehen. Jetzt steht da eine 0x21.... Ändert aber leider nichts. Und die 0x80+x führt immer noch dazu, daß das Display nur Striche in der obersten Pixelzeile jedes Zeichens darstellt :-( Viele Grüße Tobi
Hallo, ich hab das Problem gelöst. Nicht nur die erste Zeile war auf 8-Bit eingerichtet. Sondern auch noch eine weiter... die hatte ich übersehen. Naja. Und im 8-Bit Modus versteh das LCD 4-Bit Befehle so schlecht. Danke für den Wink. Jetzt muß ich mich nur noch mit den selbstdefinierbaren Zeichen auseinander setzen. Viele Grüße Tobi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.