Liste der Anhänge anzeigen (Anzahl: 1)
Hast du mal zwischen den Schritten richtig lange Zeiten rein gemacht? So ne Sekunde? Häng mal an die Ports noch ne Batterie von 11 LEDs dran. Insbesonders an die 3 Ctrl Pins (E/RS/RW) . Ich habs auch an den Datenpins gehabt. Mit den langen Zeiten konnte ich dann sehen ob das so auf der Hardware so passiert wie ich mir das vorstelle. Evtl ist dein Strobe auch zu kurz mit nur 3 Taktzyklen für diesen Kontroller.
Ich hab dann noch einen Pin genommen (mit Treiber Transistor) um das Display an und aus zu schalten. So stelle ich sicher dass das Display immer im Start Zustand ist, wenn ich meine Sequenz starte.
Edit: So hab ich meins ageschlossen.
Anhang 29049
- - - Aktualisiert - - -
Ach ja: Ich warte dann nach "Power On" für das Display noch 1s bis sicher die Spannung aufgebaut ist. Nicht nur ein paar ms wie im Datasheet beschrieben.
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo White_Fox
zwei Sachen sind mir in deinem letzten Code aufgefallen:
1. Es wird Entry Mode 0b00000111 verwendet, also Display Shift Left, damit wird das Display nach dem Schreiben nach links verschoben -> und die Zeichen verschwinden wenn du links geschrieben hast. Hast du andere Entry Mode ausprobiert, versuch's mal mit diesem abgespeckten Code mit Entry Mode 0b00000110.
2. sehe ich das richtig, dass du jetzt beim Initialisieren den Function Set 0b00100100 sendest? 3x 0b00110000 wäre glaub ich richtig. Mit der Sekunde Wartezeit hast du vielleicht übertrieben? Ist zwar gut, um die Abfolge zu kontrollieren, aber in der Reality reichen 5ms. Hier ein Bild zu der 8-Bit Initialisierung eines anderen 1602 LCD.
Anhang 29052
Gruß
witkatz