Tag zusammen. Mich würde interessieren wann und wie oft ich ein LCD-Display zu initialisieren habe. --- code-anfang motor rechts{ lcd meldung"motor dreht rechts" } motor links{ lcd meldung "motor dreht links" } lcd anzeige{ (2) lcd meldung erzeugen } main{ (1) motor rechts{} warte 10min motor links{} warte 10min } ---code-ende Wie initialisiert man richtig? Mache ich das nur am Anfang in der main-routine (1)? Oder schreibe ich es in die LCD-routine (2), so das jedes mal wenn der Motor die Richtung ändert, das LCD sich initialisiert bevor es Meldung gibt? gruß Rocco
Eigentlich reicht eine einmalige Initialisierung beim Programmstart. Es gibt Leute, die die Initialisierung auch zum Löschen benutzen, dann natürlich vor jeder Textausgabe. Kostet jedoch unnötig Zeit. Herkömmliche Text-LCDs sind erstaunlich empfindlich gegen Spikes und ESD. Ich habe es schon oft erlebt, daß sich ein Display in störungsreicher Umgebung de-initialisierte, daher kann es beim Dauerbetrieb eines Gerätes sinnvoll sein, hin und wieder die Initialisierung zu wiederholen, sofern dies kein Flackern verursacht.
Das Initialisieren kostet viel Zeit. Daher sollte es nur einmal vorne im MAIN stehen. Aber wie Sebastian schrieb kann ein Display auch gestört werden. Da hilft es wenn man den R/W-Pin an den µC führt. Damit ist es möglich das Busy-Bit Abzufragen. Wenn dieses hängt kann man neu Initialisieren und die Anzeige sollte wieder laufen. Mit der Busy-Abfrage kann man auch auf manche Wartezeiten verzichten. Z.B. "Cursor home" senden, dann etwas anderes bearbeiten und vor der nächsten Ausgabe testen ob das Display wieder bereit ist. avr
Das mit dem BusyBit klingt auch ganz gut. Das muss ich mir mal näher ansehen wenn alles zufriedenstellen funktioniert. Momentan habe ich noch ein wenig Verständnisprobleme was Bits angeht :). Wahrscheinlich liegt es am timing, habe es aber noch nicht ganz herausgefunden.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.