mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik "Vorschleife" LCD am AVR


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Bin jetzt etwas weitergekommen mit meinem LCD und Avr.
Bin jetzt am experementieren, und habe auf ein Problem zugestossen!
Ich möchte jetzt, dass mein 16x2 LCD auf der ersten zeile IMMER
"Alex" anzeigt, und auf der zweiten zeile
"degfarsilughasröguhasrögouhbarguahrgaugbh" was natürlich auf 16
zeichen nicht passt, soll er um ein Zeichen mit "ShiftLcd left" +
waitms 200 verschieben...
was bei mir rauskommt:
es wird "Alex" auf der ersten Zeile mitverschoben!
Also brauche ich sowas wie eine Vorschleife, damit er die Erste zeile
so lassen kann, wie sie ist!
Mein Falsches Programm in Bascom sieht so aus:

 Cls
 Locate 1 , 1
 lcd "ALEX"
 Waitms 400
 Locate 2 , 1
 Lcd " shtdfhsthsfcxfgjcxfjtgh"
 Do
 Shiftlcd Left
 Waitms 80
 Cursor Blink
Loop

Was muss ich ändern, damit ich zu meinem ergebniss komme?!
Danke!
 Alex

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du legst Dir einen Schattenspeicher im SRAM für die 2. Zeile an, in dem
Du dann den Text verschiebst.
Und nach jedem Schieben wird die komplette Zeile neu an das LCD
ausgegeben.


Peter

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal...
kannst du es vllt genauer sagen?!
Ich verstehe schon soweit was ich machen soll, aber ich weiss nicht WIE
ich das machen soll
Danke

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stelle es dir so vor:
Shiftlcd kannst du erst mal vergessen. Das bringt dich nicht
weiter.

Also bist du selbst für die Ausgabe verantwortlich.
Du musst Code schreiben, der die 2. Zeile selbst ausgibt.
Beim ersten mal gibst du aus

 1234567890123456
" shtdfhsthsfcxfg"

dann wartet dein Code 80 ms und gibt die 2. Zeile erneut aus,
diesmal aber ab der 2. Position im String

"shtdfhsthsfcxfgj"

Nach weiteren 80 ms wird wieder nur in die 2. Zeile ausgegeben,
ab der 3. Stelle

"htdfhsthsfcxfgjc"

usw.

Dazu musst du natürlich den kompletten String irgendwo
gespeichert haben, eben im Schattenspeicher. Und alle 80 ms
gibst du einen anderen Teil aus diesem String an die 2. Zeile
des Displays aus.

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Alex

Setze mal den Cursor vor der DO /LOOP-Schleife auf LOWERLINE.

MfG Paul

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.