www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD Display/Cursor Position auslesen


Autor: Parvis S. (parvis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich habe mir vor kurzem ein 1x16Zeichen LCD von Reichelt(lcd 161a) 
angeschafft (KS0066U-Controller) und ihn via dem ASM LCD-Tutorial 
(http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD) auch gleich 
mal angesteuert. Nach anfaenglichen Problem funktioniert auch alles 
soweit ganz okay. Jetzt aber zu meiner Frage, die ich mit Hilfe des 
Tutorials/Foren nicht beantwortet bekommen habe:

Wie kann ich die aktuelle Cursor-Position und den Text aus dem 
LC-Display wieder auslesen?

Und vielleicht noch ne Frage hinterher: Das Display hat die unangenehme 
Eigenschaft, dass die ersten 8 Zeichen im Speicher auf 00h-07h und die 
restlichen 8 auf 40h-47h liegen. Das macht u.a. das Display-schieben 
recht unangenehm, weil z.B. beim links schieben die Zeichen 00h-07h -> 
??h-06h und 40h-47h->39h-46h geschoben werden (so stelle ich mir das 
zumindest vor) und daher Zeichen 39h erstmal komplett verschwindet.

Vielleicht hat ja einer von Euch die gleichen Probleme gehabt/geloest 
und kann mir ein wenig weiterhelfen.

Beste Gruesse,

Parvis

Autor: Falk Brunner (falk)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
@ Parvis S. (parvis)

>Wie kann ich die aktuelle Cursor-Position und den Text aus dem
>LC-Display wieder auslesen?

Ist selten notwendig/sinnvoll. Den Text kann man auslesen, dazu muss man 
den DDRAM lesen. Die Cursorposition kann man AFIK nicht auslesen. Muss 
man auch nicht, schlieslich kann der uC sie setzen, dann weiss er wo der 
Cursor steht.

>restlichen 8 auf 40h-47h liegen. Das macht u.a. das Display-schieben
>recht unangenehm,

Das kann man direkt per Befehl.

MFG
Falk

Autor: Parvis S. (parvis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ist selten notwendig/sinnvoll. Den Text kann man auslesen, dazu muss man
> den DDRAM lesen. Die Cursorposition kann man AFIK nicht auslesen. Muss
> man auch nicht, schlieslich kann der uC sie setzen, dann weiss er wo der
> Cursor steht.

Das Auslesen ist genau mein Problem. Wie mache ich das??? Aus dem 
Datenblatt lerne ich zwar welches Lesekommando es gibt, aber was mache 
ich danach??? Lese ich nach dem Lese-Befehl die Daten analog ein wie ich 
sie schreiben wuerde???

Den Cursor betreffend hatte ich mir gedacht, dass man ihn wenn man die 
Position schreiben kann auch wieder einlesen kann. Falls das doch nicht 
geht, dann muss wohl doch eines Cursor-Speicher-Register herhalten.
>
>>restlichen 8 auf 40h-47h liegen. Das macht u.a. das Display-schieben
>>recht unangenehm,
>
> Das kann man direkt per Befehl.

Welcher Befehl???? Der Schiebe-Befehl funktioniert zwar, aber wenn ich 
z.B. den Text '12345678abcdefgh' um eins nach links verschiebe, dann 
erhalte ich '234567 bcdefgh' (wegen der Adressen-Luecke zwischen den 
linken und rechten 8 Zeichen).

Beste Gruesse,

Parvis

Autor: Der Micha (steinadler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Parvis S. wrote:
> Welcher Befehl???? Der Schiebe-Befehl funktioniert zwar, aber wenn ich
> z.B. den Text '12345678abcdefgh' um eins nach links verschiebe, dann
> erhalte ich '234567 bcdefgh' (wegen der Adressen-Luecke zwischen den
> linken und rechten 8 Zeichen).
>
> Beste Gruesse,
>
> Parvis

Mach doch einfach einen Zeiger, der dir auf den Text zeigt.
Und in deiner Ausgaberoutine inkrementierst und prüfst du, ob der Zähler 
größer 7 ist, wenn ja dann sendest du halt vorneweg ein Kommando 
"Beginne an Adresse 0x40 mit Schreiben".
Da brauchst du m. E. nix schieben!?

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.