Hi zusammen, ich weiß, das Thema wurde schon einige Male durchgekaut aber ich komm einfach nicht weiter. Es geht um einen AVR Mega8, ein 2x16 LCD Display (gibt kein Datenblatt dazu) und die Lib von Peter Fleury. Da ich die Steuerpins von den Datenpins trennen musste (Steuerpins PortD, Datenpins PortC) möchte ich die Lib von Peter Fleury verwenden. Es ist auch nicht das erste LCD dass ich ansteuere, hat bisher immer geklappt. Nur leider verzweifle ich dieses mal. Meine Belegung: RS: PD0 RW: PD2 E: PD1 DB4-8: PC0-PC3 DB0-3: offen Ich kann das Display ansprechen, den Courser blinken lassen, ihn verschieben (bedingt, geht nur innerhalb der ersten Positionen) aber wenn ich Text ausgebe (z.B. mit put_c("A") oder put_s("ABC") zeigt das Display nur Nullen an. Also für jeden Buchstaben oder Zeichen das ich ausgebe erscheint eine 0 auf dem Display. Ich hab auch versuchsweise RW fest auf GND gelegt und den Part der Lib entsprechend mit einem fixen Delay abgeändert. Kein Erfolg. Mit zwei weiteren LCD Displays (anderer Hersteller) ebenfalls die Selbe Problematik. Alle Verbindungen sind sauber verlötet und x-mal durchgeklingelt. Wenn ich DB0-3 auf GND lege passiert übrigens gar nichts. Display bleibt aus (Balken verschwinden aber es erscheint kein Courser). Das hatte ich so auch noch nie, hab die Pins bisher immer auf GND gelegt. Jemand eine Idee?
Welches Controllerchip befindet sich denn auf dem LCD? Habe schon die leidige Erfahrung gemacht dass "HD44700" kompatibel nicht unbedingt bedeutet dass es ohne Anpassung im Code läuft.
Gute Frage, ist leider nicht ersichtlich. Selbe Displays liefen aber bisher an einer anderen LIB (die hier aus dem Forum) und an einer Standardlib von ST (an einem STM32F4) problemlos. Meeensch... hätte ich doch nur alles wie immer auf einen Port gelegt :/
Borsty Bürste schrieb: > hätte ich doch nur alles wie immer auf einen Port gelegt wenn es nur am port liegt, hilft dir mein alter code vielleicht weiter. Du kannst da jeden pin einzeln definieren: #ifndef db5_Port #define db5_Port db4_Port #define db6_Port db4_Port #define db7_Port db4_Port #define db5_Pin db4_Pin+1 #define db6_Pin db4_Pin+2 #define db7_Pin db4_Pin+3 #endif Es sollte universal-code für jede Art von Anschluss werden. Inzwischen benutze ich aber nur noch i2c. Deswegen ist der code irgendwann stehengeblieben. hat aber funktioniert.
Ich verwende die Lib regelmäßig mit unterschiedlichen Ports, es gibt keine Probleme. Der Fehler liegt sicher in der lcd.h oder der Verdrahtung.
Läuft. War eine Minibrücke am Kupfer wo nicht richtig geätzt wurde. Konnte man selbst unter dem Mikroskop nur schwer erkennen. Somit hatte DB5 einen Kurzschluss mit GND. Beim durchklingeln natürlich nicht aufgefallen. Ärgerlich... Danke für eure Hilfe. Verwende nun die Lib von Peter Fleury.
Borsty Bürste schrieb: > Beim durchklingeln natürlich nicht aufgefallen. Dann verstehst Du Dein Handwerk nicht. Unterbrechungen und Kurzschlüsse werden beim Durchklingeln immer erkannt.
Route 66 schrieb: > Kurzschlüsse werden beim Durchklingeln immer erkannt. Kurzschlüsse eben genau dann nicht, wenn die Leiterplatte offenbar nur auf Unterbrechungen durchgeklingelt wird. Da muss wohl die Teststrategie angepasst werden. Das Ganze nennt sich "Lernen"...
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.