Forum: Mikrocontroller und Digitale Elektronik LCD in Bascom


von Manfred S. (Firma: Manfred) (xfred343)


Lesenswert?

Hi,

hab ein 2x16 LCD Display,

jetzt würde ich gerne bei jeder Ausgabe zeilenweise shiften.
Das heißt - das was in der 2. Zeile gestanden ist, soll in der 1. Zeile 
stehen und der neue Text kommt in die 2. Zeile.

Die Bascom Shift-Befehle rotieren nur nach links oder rechts oder brauch 
ich hier einen Zwischenspeicher (string*16) für eine Zeile?

von Weingut P. (weinbauer)


Lesenswert?

"shift" ist nur für Bits geeignet, nicht zum LCD bearbeiten
Locate ist der Befehl und n Zwischenspeicher ...

von Manfred S. (Firma: Manfred) (xfred343)


Lesenswert?

Thanks,

meinte natürlich ShiftLCD - der verschiebt beide Zeilen nur nach links 
oder rechts

von Chris S. (chrischanx3)


Lesenswert?

Hallo.
ShiftLCD ist nur dazu da um den gesamten Inhalt des Displays zu 
verschieben. Mit dieser Funktion ist es nicht möglich nur eine zeile 
oder einzelne Abschnitte zu verschieben.
Also wenn du da etwas 'shiften' möchtest, dann musst du dir eine eigen 
Konstruktion bauen.
Das mit dem String klingt gut. Ich brauche selbst soetwas, aber auf die 
Idee bin ich noch nicht gekommen
LG

von Korax K. (korax)


Lesenswert?

Hallo,

der Text der 2. Reihe steht doch sicher in einer Variablen. Gib diesen 
Text doch in die erste Zeile (überschreibt die alte Anzeige). Danach den 
neuen Text in Zeile zwei.

von Manfred S. (Firma: Manfred) (xfred343)


Lesenswert?

Hi, so könnte die Lösung aussehen

Dim Lcdline1 As String * 16
Declare Sub Slcdline2(byval Lcdline2 As String )
...
CLS
LCD "Willkommen"
wait 1
call slcdline2("Die Infos")
wait 1
call slcdline2("werden nach")
wait 1
call slcdline2("oben gerollt")
wait 1
call slcdline2("und laufend")
wait 1
call slcdline2("erweitert")
wait 1

...

'**************************** Rollierende LCD
Sub Slcdline2(byval Lcdline2 As String )
Cls
if lcdline1<>"" then
   cls
   Lcd Lcdline1
endif
Lcdline1 = Lcdline2
Lowerline
Lcd Lcdline2
End Sub

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.