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


von Alex (Gast)


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

von Peter D. (peda)


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

von Alex (Gast)


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

von Karl heinz B. (kbucheg)


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.

von Paul Baumann (Gast)


Lesenswert?

Hallo Alex

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

MfG Paul

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
Noch kein Account? Hier anmelden.