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...
kannst doch die Schreibposition (DD-adress) an eine beliebige Stelle setzen und dann ein Zeichen schreiben.
>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 :)
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.