Hallo, Ich habe hier ein Projekt mit einem HD44780, PICF452 in MPLAB /C18 in der Entwicklung. Prinzipiell funktioniert die Anzeige, wenn ich den Debugger (PICKIT3) zum ersten Mal (nach dem Einchalten der Stromversorgung des Targets) starte (RESET und dann RUN oder GO TO CURSOR). Beim zweiten und nach allen folgenden Starts des Debuggers zeigt das Display nur noch dunkle Zeilen. Ich nehme an, dass der wiederholte Aufruf der SW-Initialisierung den HD44780 aus der Fassung bringt. Am fertigen Gerät würde das Verhalten ja nicht stören aber während der Entwicklung nervt das. Ich hatte früher bereits einmal den HD44780 eingesetzt und das Problem ist mir damals nicht aufgefallen. Ist dieses Verhalten des HD44780 normal und kann man da Abhilfe schaffen?
Ein ähnliches Problem hatte ich auch mal, als ich den 4-Bit-Modus nicht richtig initialisiert hatte. Da hab ich einfach mal das Datenblatt konsultiert und timing-exakt die Initialisierungssequenz drauf gegeben und voila: es funktionierte, wie es sollte. Gruß Oliver
> Beim zweiten und nach allen folgenden Starts des Debuggers > zeigt das Display nur noch dunkle Zeilen. Tja, du hast also aus dem Datenblatt stumpf die Initialisierungssequenz abgeschrieben, und nicht so eine genommen, die man im Netz findet, die sagt, daß sie sowohl bei uninitialisierten als auch bei schon initialisierten, insbesondere auf 4 bit geschalteten, Displays funktioniert.
Was sagt den die Busy Anzeige. Ist der Display Prozessor immer bereit, bevor du das nächste Kommando schickst?
@Oliver: Ich verwende die XLCD-Library von C18. Für das Timimg muss man aber eigene Routine erstllen. (18 Cyclen bzw. 5 ms bzw. 15 ms. Diese habe ich überprüft.
@MaWin: Kannst du mir sagen, wo ich diese Beschreibung der Initialisierungs-Routine im Netz finde?
@Michael: Ich frage vor jedem Befehl an den HD die busy-Routine (der der C18 - XLCD-Library) ab. Das funktioniert, andernfalls würde das Programm ja hängen.
Wenn man die Busy-Abfrage bleiben lässt und Delays benutzt, dann kann man einen Portpin sparen. Die Displays sind sowieso so schnarchlangsam dass das keinen Unterschied macht. Florian
@flbo4711: Das mit dem Portpin ist ein guter Tip. Aber gerade bei langsamer Peripherie ist es ja günstig, die busy-Abfrage zu nutzen um nicht andernfalls worst Case-Bedingungen einhalten zu müssen. Im Übrigen glaube ich nicht, dass ein Timing-Problem vorliegt, das ich mit dem Debugger ja von Hand von einem zum folgenden Aufruf der HD44780 _Routinen weiter steppe. Da vergeht ja reichlich Zeit.
Hi, P. F., ein ähnliches Symptom ließ sich zurückführen, weil ich ein Portpin bneutzt hatte, das auch für JTAG gebraucht wurde. Ciao, ein Bekennender Wolfgang Horn
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.