Forum: Mikrocontroller und Digitale Elektronik LCD Zeilen anwählen


von Thorsten Fritzke (Gast)


Angehängte Dateien:

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

von Thorsten Fritzke (Gast)


Lesenswert?

wirklich keiner ne idee?

von crazy horse (Gast)


Lesenswert?

grade mal ne Stunde her und schon drängeln?
Hm :-(

von Thorsten Fritzke (Gast)


Lesenswert?

abends is doch eher mehr los.. und als drängeln soll das bitte auf
keinen fall verstanden werden. dachte da findet sich schnell ne
passende antwort :/

mfg

von Andi K. (Gast)


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

von Andi K. (Gast)


Lesenswert?

Autsch, meinte 50µs tuns auch :-|

MfG
Andi

von Thorsten Fritzke (Gast)


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

von Andi K. (Gast)


Lesenswert?

Wenn es jetzt geht hätt ich da noch nen Tip.
Du kannst im AVR-Studio mit .db ruhig komplette "Strings" definieren
wie z. B.
.db "Hallo Welt",0
Das "null-Byte" ist direkt hinter dem "t".

MfG
Andi

von Thorsten Fritzke (Gast)


Lesenswert?

danke auch für den tip..
spart tipparbeit

mfg

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
Noch kein Account? Hier anmelden.