lcd display hd44780 inhalt lesen in 4-bit modus

Gast #4045662
Lesenswert?

jojo ey jo kollegen was geht so ey?

hoffe drücke mich korrekt aus so.

ich hab das lcd display in 4-bit modus (schreiben funktioniert) und 
würde gern den inhalt von einer position lesen. das problem ist, ich 
weiß nicht wie man es im 4-bit modus richtig machen würde.

ich hab was geschrieben, aber funktioniert nicht, 8 bit modus will ich 
nicht. ich benutz einen atmega8.

ich würde mal schreiben, wie ich es sonst mache.

zuerst setze ich die dd-ram addresse, um von einer stelle den inhalt zu 
lesen(zeile, spalte), danach warte ich auf das busy flag, setze rs und 
rw beide auf high und die 4 ausgänge (db4-db7) auf eingang.

danach starte ich enable (signalisiere den befehl rs=1 und rw=1),
schreibe den port inhalt (4-bit) in eine variable und starte wieder die 
enable-operation, um zu signalisieren, dass die nächsten 4 bits gelesen 
werden können.

jedoch löscht sich der inhalt auf dem bildschirm komplett und es 
passiert nix mehr.

hab auch eine grafik im internet gefunden, auf der es eig. auch so 
verdeutlicht ist, dass man 2 mal die enable leitung setzt.

hier ist der link:

http://www.sprut.de/electronic/lcd/lcd4bit.gif


bin für jede hilfe dankbar, liebe elektro kollegen
#4045701
Lesenswert?

thorbenboy schrieb:
> setze rs und
> rw beide auf high und die 4 ausgänge (db4-db7) auf eingang
In welcher Reihenfolge? Setz mal zuerst die Datenpins als Eingänge und 
erst danach RW auf 1, ansonsten könntest du dir einen Kurzschluss bauen.

Wichtig ist auch, dass das Lesen während des High-Plateaus des 
Enable-Pulses passieren sollte, also vor der fallenden Flanke. In meinen 
ersten Projekten, als ich die vier Datenpins immer am gleichen Port in 
derselben Reihenfolge verwendet habe, spielte das noch keine Rolle, weil 
das Lesen offenbar schneller ging als das Abfallen des Pegels am DB7. 
Als ich aber meine Library dann universeller programmiert habe und 
dementsprechend die Zugriffe komplizierter wurden, hat plötzlich das 
Auslesen des Busy-Flags nicht mehr funktioniert, bis ich im 
Timing-Diagramm gesehen habe, dass ich die Pegel zu spät abfrage.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren