Forum: Mikrocontroller und Digitale Elektronik Verzweiflung um LCD Lib von Peter Fleury


von Borsty B. (mantabernd)


Lesenswert?

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?

von David P. (chavotronic)


Lesenswert?

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.

von Borsty B. (mantabernd)


Lesenswert?

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 :/

von grundschüler (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Hubert G. (hubertg)


Lesenswert?

Ich verwende die Lib regelmäßig mit unterschiedlichen Ports, es gibt 
keine Probleme.
Der Fehler liegt sicher in der lcd.h oder der Verdrahtung.

von Borsty B. (mantabernd)


Lesenswert?

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.

von Route_66 H. (route_66)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.