www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD aktualisieren; einzelne Zeichen löschen?


Autor: Toni (Gast)
Datum:

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

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
löschen(x, y) ::= write(x, y, " ");

HTH

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kannst doch die Schreibposition (DD-adress) an eine beliebige Stelle 
setzen und dann ein Zeichen schreiben.

Autor: holger (Gast)
Datum:

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

Autor: Spess53 (Gast)
Datum:

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

Autor: Bert 0. (maschinist)
Datum:

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

Autor: Herr Mueller (herrmueller)
Datum:
Angehängte Dateien:

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

Autor: Toni (Gast)
Datum:

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

Autor: Herr Mueller (herrmueller)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
$7F druckt einen Pfeil.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: Toni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jut, mit der Überschreiberei der einzelnen Zeichnen funktionierts 
relativ gut, ohne Ruckeln oder sonstige Verzögerungen.

Danke nochmal und gute Nacht :)

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.