mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD Zeilen anwählen


Autor: Thorsten Fritzke (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Thorsten Fritzke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wirklich keiner ne idee?

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
grade mal ne Stunde her und schon drängeln?
Hm :-(

Autor: Thorsten Fritzke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andi K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andi K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Autsch, meinte 50µs tuns auch :-|

MfG
Andi

Autor: Thorsten Fritzke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andi K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thorsten Fritzke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke auch für den tip..
spart tipparbeit

mfg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.