LCD Zeilen anwählen

Gast #207048
Lesenswert?

Nabend

Ich versuche gerade krampfhaft mein LCD dazu zu überreden einen string
aus dem eeprom in jeder zeile einmal auszugeben.

ohne zeilenwechsel:
nach dem einschalten wird das lcd ohne weiteres initialisiert und in
der 1. zeile steht mein string.

mit zeilenwechsel:
laut datenblatt meines lcd (20x4 hd44780),kann ich mit dem befehl
"sett dd ram address" die zeichenzelle anspringen in der ich
weiterschreiben möchte(auto increment funktioniert soweit auch).
der befehl hat nun folgendes bitmuster:
0b1<7bit-adresse> und soll nach 42µs fertig sein.

ich lade also immer abwechselnd zeilenadresse und meinen zeichenstring
aus dem eeprom:
0b1<40h für Zeile2>
string ausgeben
0b1<14h für Zeile3>
string ausgeben
0b1<54h für Zeile4>
string ausgeben

allerdings spinnt das lcd nun total. z.t. wirre zeichen mitten im
string und die zeilenangaben werden ignoriert.

ich schreibe in assembler und hoffe mir kann da jemand helfen.

mfg
Angehängte Dateien:
Gast #207052
Lesenswert?

Vielleicht findest Du selbst die passende Antwort ;-)
Zumindest sollte man E (LCD-Enable) erst auf low-Pegel setzen, nach dem
man die LCD-Daten an den Port ausgegeben hat.
Ansonsten brauchst Du nach jeder Zeichenausgabe nicht 1ms zu warten,
50ms tuns auch. Bei nen vollem LCD mit 80 Zeichen dauerts ja dann ne
ewigkeit (80ms) und verschwendet ne menge anderer Rechenzeit.

MfG
Andi
Gast #207054
Lesenswert?

oh mann na klar..
is wohl irgendwo beim kopieren und einfügen verloren gegangen..
ich danke dir andi.

warteschleife kann ich natürlich auch noch anpassen. allerdings habe
ich noch keine wirklich zeitkritischen anwendungen daher habe ich das
erstmal darauf ausgelest dass es funktioniert..

mfg

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