Hallo liebe Forengemeinde. Ich schreibe hier, in der Hoffnung, das sich hier jemand finden lässt, der mir kurz erklären kann, was in meinem Programm in die Hose geht. Ich möchte gern ein EA-204-4 Dip Display mit einem Atmega8 ansteuern. Die LCD-Datenleitungen habe ich an Pins PC0-3 angeschlossen. Ebenso frage ich das Busy-Flag ab. Ich bin der Meinung, das meine Display-Initialisierung funktioniert, da es die gleiche ist, wie ich sie auch schon auf einem ATtiny24 laufen hatte. Da gab es keine Probleme. Die Probleme fingen damit an, das ich die LCD-Routinen aus dem Tutorial dieser Seite verwenden wollte. Ich bin ja schon glücklich, auf dem Display jetzt endlich überhaupt etwas lesen zu können. Aber hier hört es auch schon auf. Es gibt mehrere Probleme: 1. Der angezeigte Text ist immer um eine Spalte nach rechts versetzt und das letzte Zeichen fehlt. 2. In meinem Programm gibt es einen Punkt "posi", damit wollte ich ausprobieren, ob ich einzelne Zeilen beschreiben kann. Wenn ich nun die Zeilen Adresse in Temp0 lade, kann ich keine Zeile wechseln und ich habe an der ersten Spalte das dem Binärcode im Register entsprechende ASCII-Zeichen vor meinem Text stehen. Ändere ich nun das Register in Temp1, kann ich die Zeile wechseln, allerdings wieder mit komischen Zeichen vor dem Text. Das verstehe ich nicht, weil ich Temp1 garnicht in der LCD-Befehlsroutine verwende. 3. Dann habe ich in meinen LCD Routinen auskommentierte Befehle stehen, damit wollte ich bezwecken, das ich die anderen Pins an Port C nicht beeinflusse, wenn ich das Display beschreibe. Von meinem jetztigen Standpunkt kann ich da aber keinen Fehler feststellen, funktioniert trotzdem nicht. Evtl. Weiß jemand Rat, wäre ihm sehr dankbar, doktore schon seit zwei tagen daran rum :-( Mit freundlichen Grüßen Daniel
Hi Datenblatt: http://www.lcd-module.de/eng/pdf/doma/dip204-4e.pdf Auf Seite 3 steht eine Beispiel-Initialisierung, allerdings 8bit. Sollte aber kein Problem sein, Diese in 4bit umzuarbeiten. Denke, Dir fehlt, daß Dein Display Mehrzeilig ist, habe Deinen Code aber nur überflogen. MfG PS: Da Du 'was lesen kannst', gehe ich davon aus, daß die zwei Balken (nur Power am Display) verschwunden sind und Du Text lesen kannst. Sonst: Kontrast-Spannung anpassen
:
Bearbeitet durch User
so gewollt? Busy: push Temp0 ; Temp0 auf Stapel legen push Temp1 ... pop Temp0 pop Temp1 ret ; zurück
Martin B. schrieb: > so gewollt? > > Busy: > push Temp0 ; Temp0 auf Stapel legen > push Temp1 > > ... > > pop Temp0 > pop Temp1 > ret ; zurück Wenn ich die pushs und pops lösche, zeigt mir das display komischerweise nichts mehr an. Irgendwo muss ein Wurm drin sein, oder mehrere. Verzweifle langsam daran.
Daniel B. schrieb: > Wenn ich die pushs und pops lösche, zeigt mir das display komischerweise > nichts mehr an. > Irgendwo muss ein Wurm drin sein, oder mehrere. Verzweifle langsam > daran. Nein nicht löschen, nur Du vertauschst Temp1 und Temp0 push Temp0 ;legt den Inhalt von Temp0 oben auf den Stapel push Temp1 ;legt den Inhalt von Temp1 darüber .... pop Temp0 ;schreibt den Inhalt des obersten Stapelelements in Temp0 (Das war aber vorher der Inhalt von Temp1) pop Temp1 ; nimmt das nächste Element vom Stapel und schreibt es in Temp1 (Das war aber Vorher der Inhalt von Temp0)
Hi Wenn Du in der Reihenfolge pusht: push Temp0 push Temp1 Dann musst Du in UMGEKEHRTER Reihenfolger wieder vom Stack runter holen, also pop Temp1 pop Temp0 Da Du sonst die Werte vertauscht. Ist, wie der Name vermuten lässt, ein Stapel-Speicher. Alles wird einzeln oben drauf gelegt und ebenso von oben wieder runter genommen. MfG PS: pöh ... dann eben nicht :P (nächstes Mal beeile ich mich mehr)
:
Bearbeitet durch User
Entschuldige mich für die knappe Antwort. Ich dachte, es ist ein Flüchtigkeitsfehler und der Grad der Verzeiflung war mir leider nicht bewusst.
Patrick J. schrieb: > Hi > > Wenn Du in der Reihenfolge pusht: > push Temp0 > push Temp1 > > Dann musst Du in UMGEKEHRTER Reihenfolger wieder vom Stack runter holen, > also > > pop Temp1 > pop Temp0 > > Da Du sonst die Werte vertauscht. > > Ist, wie der Name vermuten lässt, ein Stapel-Speicher. > Alles wird einzeln oben drauf gelegt und ebenso von oben wieder runter > genommen. > > MfG > > PS: pöh ... dann eben nicht :P (nächstes Mal beeile ich mich mehr) Oh man. Darauf wäre ich nie gekommen. Wäre der Meinung, der Mega8 weiß, wo er was hinlegt. Jetzt geht alles. Es wird ab er ersten Spalte beschrieben, ich kann die oberen 4 Pins von Port C ausmaskieren und kann problemlos Zeilen wechseln. Hab mir das gerade mit Legosteinen im Kopf nachgebaut und es macht sehr viel Sinn. Danke :-) :-) Ihr seit die bessten :-)
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.