Hallo, ich hab mal ein LCD wie im Tutorial beschrieben angeschlossen. Allerdings hab ich auch das Read/Write-Signal angeschlossen, weil ich das Busy-Flag abfrage, anstatt eine feste Zeit zu warten. Im Buch "AVR-Risc Microcontroller" von Trampert heißt es auf Seite 344 über den 4-Bit-Mode: "Die beiden Halbbytes dürfen in diesem Fall [4-Bit-Modus] unmittelbar nacheinander übertragen, das Busy-Flag muß erst nach der Übertragung des gesamten Befehls abgefragt werden." Wenn ich die beiden Nibble direkt hintereinander (ohne Wartezeit) rausgebe, geht's nicht. Wenn ich aber nach jedem Nibble auf das Busy-Flag warte, geht's. Also genau anders rum wie im Buch beschrieben. Es wundert mich jetzt schon irgendwie, weil ich also nach jedem geschriebenen Nibble ein ganzes Byte rauslesen muß, um das Busyflag zu kriegen. Naja, wie auch immer, hat jemand Erfahrungen damit? MfG, Sebastian
Hallo, ich hab mal ein LCD wie im Tutorial beschrieben angeschlossen. Allerdings hab ich auch das Read/ Write-Signal angeschlossen, weil ich das Busy-Flag abfrage, anstatt eine feste Zeit zu warten. Im Buch "AVR-Risc Microcontroller" von Trampert heißt es auf Seite 344 über den 4-Bit-Mode: "Die beiden Halbbytes dürfen in diesem Fall [4-Bit-Modus] unmittelbar nacheinander übertragen, das Busy-Flag muß erst nach der Übertragung des gesamten Befehls abgefragt werden." Wenn ich die beiden Nibble direkt hintereinander (ohne Wartezeit) rausgebe, geht's nicht. Wenn ich aber nach jedem Nibble auf das Busy-Flag warte, geht's. Also genau anders rum wie im Buch beschrieben. Es wundert mich jetzt schon irgendwie, weil ich also nach jedem geschriebenen Nibble ein ganzes Byte rauslesen muß, um das Busyflag zu kriegen. Naja, wie auch immer, hat jemand Erfahrungen damit? MfG, Sebastian Ja hatte ich auch das problem. Allerdings stimmt die aussage im Buch schon Im Samsung KS0070B Datenblatt ist ein Timing Diagramm für den 4 bit modus abgebildet "Busy Flag outputs "1" after the second transfer are ended" Du musst 2 mal den Enable pulsen lassen währen der LCD contr im Read mode ist. Ich hatte das problem das die Busy flag abfrage durch den AVR input gestöhrt wurde. Musste den AVR Input auf High Z bringen dann hatts geklappt. Soll ich dir mal den code (asm) rüberlassen ? Phagsae
Hallo, das Problem ist: wenn ich beide Nibbles direkt hintereinander sende, zeigt das Display nur noch Müll an. Wenn ich dazwischen etwas warte (ca. 20-30µs) oder eben das Busyflag abfrage, funktioniert es. Laut Buch muß ich die beiden Nibbles ja direkt hintereinander senden dürfen. Oder ist das vielleicht eine Macke des Display-Controllers (ich weiß den genauen Typ nicht, weil schin eingelötet)? MfG, Sebastian
Hast du das timing beachtet ? Zuerst RW/RS setzten Dann 40ns warten bis Enable gesetzt wird Enable nicht kürzer als 220ns Enable muss ca 180 ns anliegen bevor Die Daten akzeptiert werden Die Daten müssen 60 ns anliegen Phagsae
Hallo, ja, du hast Recht. Es hat wirklich am Timing gelegen. Ich hab meine LCD-Routinen jetzt mal umgeschrieben, und siehe da - jetzt funktioniert es so, wie beschrieben. Danke für den Tip. MfG, Sebastian
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.