BIs jetzt hab ich noch nie einen Fall gesehen, in dem man dieses
automatische Shiften irgendwie sinnvoll benutzen könnte.
Wenn du sowieso den ganzen String ausgibst
1 | lcd_string("Zum Start beliebige Taste druecken");
|
dann kannst du dir auch eine Funktion schreiben, die ja nach
'Schiebeanforderung' aus diesem String sich den gewünschten Teilstring
rausholt und nur diesen an geeigneter Position am LCD ausgibt.
In Summe ist das wesentlich einfacher und auch universeller (den die
Shift Funktion vom LCD shiftet das komplette 'Bild' und nicht nur eine
Zeile).
Ziel ist es also, dass nacheinander in deiner Schleife, die du ja
sicherlich übergeordnet in irgendeiner Form hast), dies hier
nacheinander ausgibst
....
und das programmiert man sinnvollerweise selber. Zum einen ist es
reichlich trivial, zum anderen vermeidet es jegliche Probleme mit dem
LCD. Zum dritten ist es universell einsetzbar, indem dann auf dem LCD an
irgendeiner Stelle eine Laufschrift mit x Buchstaben (wobei x nicht
notwendigerweise die Spaltrenbreite des LCD ist) durchläuft, während an
anderer Stelle zb. irgendwelche Messwerte weiterhin angezeigt werden und
auch nach wie von Sensoren upgedatet werden. Zum vierten kann man damit
beliebig lange Texte durchlaufen lassen und nicht nur die, die gerade
noch in eine physikalische Zeile des LCD passen. Und zum fünften kannst
du dann auch ganz einfach den Fall handhaben, dass deine Laufschrift so
aussieht, als ob der Text zu einer Schleife zusammengeklebt wäre; dass
also nach dem letzten Buchstaben des Textes bereits wieder damit
begonnen wird, den Textanfang auszugeben, was Leerraum auf dem LCD
vermeidet (und was erstaunlicherweise auch einfacher zu programmieren
ist, weil die ganzen Sonderfälle durch das Auffüllen mit Leerzeichen
wegfallen).