Forum: Mikrocontroller und Digitale Elektronik Benötige Hilfe bei 4x20 LCD Treiber von Peter Danegger


von Jonas (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich bin schon seit einigen Tagen beschäftigt mein 4x20 LCD-Display (EA 
W204B-NLW Controller: HD44780) zum laufen zu bringen, doch außer den 
weißen Kästchen seh ich gar nix.
Langsam bin ich am verzweifeln. Ich würde mich riesig freuen, wenn mir 
jemand helfen würde oder vielleicht einen Tipp für mich hat. Die 
Verbindungen sind auf jedenfall in Ordnung. Betreiben tue ich das 
Display im 4 Bit Modus.

Mein Microcontroller ist der ATMEGA32.

Enable an PORTC 7
RS     an PORTC 2
R/W    an GND

DB4    an PORTC 6
DB5    an PORTC 5
DB6    an PORTC 4
DB7    an PORTC 3

Die LCD Beleuchtung funktioniert immerhin.

Ich benutze zum Flashen das AVR Studio 6 mit dem JTAG ICE3.

Das Datenblatt des LCD - Displays, und der C-Code für das Hauptprogramm
sowie für den 4x20 LCD Treiber sind im Anhang. Kann es sein, dass ich
einen Fehler in der Adressierung habe oder vielleicht in der
Initialisierung des Displays? Ich kann einfach keinen Fehler finden.

Ich bin über jede Hilfe dankbar!!!

von OldMan (Gast)


Lesenswert?

Da dein Hauptprogramm so aussieht, dass der

#ifdef LCD_LINE4 ---> innerhalb des ifdefs LCD_LINE2 liegt,
  lcd_xy( 0, 3 );
  lcd_puts( "Line 4" );
  #endif

Wird keine Ausgabe auf dem LCD übersetzt. Das LCD wird nur initialisiert 
und
fertig.

von OldMan (Gast)


Lesenswert?

Ok, das habe ich übersehen:
 lcd_xy( 0, 0 );
  lcd_puts( "Line 1" );

Das sollte er übersetzen.

Stimmt Deine F_CPU? Angabe mit dem tatsächlichen Takt überein?

von Jonas (Gast)


Lesenswert?

OldMan schrieb:
> Ok, das habe ich übersehen:
>  lcd_xy( 0, 0 );
>   lcd_puts( "Line 1" );
>
> Das sollte er übersetzen.
>
> Stimmt Deine F_CPU? Angabe mit dem tatsächlichen Takt überein?

ja ich habe jetzt in den Fuses beispielshalber bei SUT_CKSEL 8MHz 
eingestellt und in der main.h auch 8MHz eingestellt..

klappt trotzdem nicht..

von Jonas (Gast)


Lesenswert?

Habs geschafft man musste die Fuses JTAG abschalten... Vielen Dank für 
den Hinweis an die Fuses !

Thread kann geschlossen werden

von Georg G. (df2au)


Lesenswert?

Bitte sieh dir das Datenblatt von EA an, Seite 4, Timing Chart, "Enable 
Rise..." und die Anmerkung rechts davon. Wenn dein Kabel länger als 10cm 
ist, wirst du den Treiber direkt am Display anlöten müssen.

Mit Verlaub, du hast in die braune Masse gegriffen. Die Displays von EA 
sind in Bezug auf die Ansteuerung das Kritischste, was mir je begegnet 
ist.

von Peter D. (peda)


Lesenswert?

Georg G. schrieb:
> Die Displays von EA
> sind in Bezug auf die Ansteuerung das Kritischste, was mir je begegnet
> ist.

Kann ich nicht bestätigen. Die laufen bei mir einwandfrei.

Vielleicht sind sie allergischer auf unvollständige Initialisierung:
Beitrag "Re: Display init erst nach MCU Reset"

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.