Hallo zusammen, es geht darum, Werte auf einem LCD (in diesem Fall 2x16 Zeichen, Ansteuerung per Mega8) auszugeben. Je nach Menüpunkt kann das Temperatur, Zeit oder sonstiges sein. Um das ganze in ASM zu realisieren sehe ich zwei Wege: 1) man aktualisiert die betreffenden Werte im jeweiligen Unterprogramm (z.B. nachdem die Uhr oder ADC ausgelesen wurden) und gibt sie direct mit lcd_command/lcd_data u.s.w. aus oder 2) man reserviert im RAM z.B. 32 Byte, schreibt die anzuzeigenden Werte erstmal an die entsprechende Stelle im RAM und schiebt diese dann sozusagen in einem Rutsch z.B. alle 100ms ins LCD. Beide Varianten haben ihre Vor- und Nachteile. Meine Frage: Gibts dafür ´ne Art "Standartvorgehensweise" oder sind beide Varianten ok und man muss von Fall zu Fall entscheiden welche die günstigere ist?
Ich bevorzuge auf dem AVR inzwischen Variante 2. Wobei ich das LCD nicht "in einem Rutsch" aktualisiere, sondern Zeichenweise, durch (sowiso vorhandenen) Timer-Interrupt synchronisiert. Alle 2 Millisekunden schicke ich das nächste Zeichen raus. Das spart Rechenzeit, da der Controller nicht auf das LCD warten muss. Meine Routine, die die Zeichen in den "Bildschirmspeicher" legt, kann noch ein paar (teils selbst definierte) Sonderzeichen auswerten, wie Enter, CLS, Cursor home und Blinkstart/Blinkstop. Das LCD kann somit mit "Fließtext" umgehen. ...
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.