Hallöchen,
ich frage mich gerade, ob jemand ne Idee hat, wie man einzelne Zeichen
eines LCD´s löschen, bzw. aktualiseren kann.
Denn das komplette (4x20 Zeichen) LCD zu löschen, um dann die
"Zeichenmaske" binnen vieler ms wieder aufzubauen finde ich etwas nervig
und auch ziemlich Rechenlastig.
Also, gibts hier nen Trick, Befehl oder sonstiges um der ganzen Sache
Herr zu werden?
Der Shift-Befehl schiebt ja nur das Display, beeinflusst aber nicht den
Textpuffer...
>ich frage mich gerade, ob jemand ne Idee hat, wie man einzelne Zeichen>eines LCD´s löschen, bzw. aktualiseren kann.
Löschen geht mit Leerzeichen drüber schreiben.
Aktualisieren mit Text überschreiben.
Dazu positionierst du einfach den Cursor an die
entsprechende Stelle und schreibst dann halt.
Hi
>ich frage mich gerade, ob jemand ne Idee hat, wie man einzelne Zeichen>eines LCD´s löschen, bzw. aktualiseren kann.
Einfach überschreiben.
MfG Spess
Hi,
wenn Du eine der gängigen Libs verwendest, z.B. P. Fleurys LCD-Lib,
kannst Du mit gotoXY() den Cursor an die zu ändernde Position setzen und
dort andere Zeichen hinschreiben.
Wenn Du das LCD "mit der Hand" programmierst, kannst Du mit dem Befehl
0b001xxxxx den Adresszähler auf Adresse 0bxxxxx des DDRAM setzen, der
nächste Data Write schreibt dann dorthin.
Die Adressverwaltung Deines Displays findest Du im Datenblatt.
Gruß...Bert
Ich habe gerade zufaellig eine Schaltung mit 4*20 LCD in Bearbeitung.
Selbst das Kopieren der kompletten 80 Zeichen aus dem RAM braucht nur
6.5ms (Atmega8,8MHz,Assembler).
OK, Danke erstmal, werde ich mal testen.
Da ich immer der Annahme war, dass die nächste Postition einfach eine
Zeile weitergeschoben wird, hatte ich gefragt.
Zur Not habe ich gerade den "DEL" Befehl (0x7F) entdeckt :)
Toni schrieb:> OK, Danke erstmal, werde ich mal testen.> Da ich immer der Annahme war, dass die nächste Postition einfach eine> Zeile weitergeschoben wird, hatte ich gefragt.> Zur Not habe ich gerade den "DEL" Befehl (0x7F) entdeckt :)
Welchen "DEL" Befehl?
0x7F ist der ASCII Code eines Zeichens, welches des öfteren für DEL
benutzt wird. Das ist aber ein Zeichen wie jedes andere.
Das LCD führt keine 'Befehle' aus, indem man ihm spezielle Zeichen
ausgibt. Es zeigt sie einfach nur an.
Wenn du etwas löschen willst, dann schreib Leerzeichen drüber und gut
ists.
Denn so ist ja auch der Default-Zustand: Alle angezeigten Zeichen sind
Leerzeichen.
Jut, mit der Überschreiberei der einzelnen Zeichnen funktionierts
relativ gut, ohne Ruckeln oder sonstige Verzögerungen.
Danke nochmal und gute Nacht :)