Hallo,
Kontrast gehört an ein Poti. Einfach deshalb, weil die tatsächlich
nötige Vee recht stark vom Displayhersteller abhängt und man bei zu
hohem Kontrast durchaus auch ausgegebene Zeichen übersehen kann, die in
der ersten Zeile sein sollen.
Wenn es keine Verdrahtungsfehler gibt, eben das übliche: Wartezeiten
lang genug (wie schnell ist der AVR getaktet?) Display hat wirklich
einen HD44780 drauf und nicht einen kompatiblen? Den Begriff
"kompatibel" definieren Display-Hersteller gern so: hat etwa genausoviel
Anschlüsse wie ein Standard-Display, die sind auch so etwa wie dort
belegt und der Chip kann, wenn man ihn richtig ansteuert, auch etwa das,
was ein HD44780 kann.
Ist zumindest meine Erfahrung...
Anschlüsse: Original-Datenblatt des Displays, dort sollte auch der
Controllertyp drinstehen.
Init-Sequence mit dem Original-Datenblatt vergleichen, speziell nötige
Mindestzeit für E H-Zeit und die maximale Zeit für Befehlsausführung.
Beim Init sind meist Mindestwartezeiten gefordert.
Vor Beginn der Init-Sequence lange genug warten, bis das Display mit
seiner PowerOn-Sequence fertig ist.
Alle Zeiten können durchaus länger sein.
Nach dem AVR-Reset: warte ich meist 150ms, bis Init aufgerufen wird.
5ms reichen sicher eigentlich für Befehle außer Clear.
E-Clock setze ich nach anlegen aller gültigen Signale und Daten mit
einem NOP zwischen L/H und H/L, bei 8MHz sind 2, bei 16MHz meist schon 4
nötig.
Das hängt auch stark vom Aufbau und den Leitungslängehn zum Display ab.
Auf dem Steckbrett und mit 20cm Flachbandkabel zum Display bin ich da
eher großzügig...
Gruß aus Berlin
Michael