Hilfe beim LCD

Gast #1377405
Lesenswert?

Moin Moin und Mahlzeit,
ich habe ein LCD vom Typ: YM-1602C.
Wie man auf dem Anhang sehen kann, zeigt es nicht das was ich sehen 
will.
Laut Datenblatt ist es wohl nicht richtig inizialisiert.
Aber wir finden den Fehler im C Code nicht.
Das Display hat einen SPLC780 und soll HD44780 kompatibel sein.
Daher haben wir den Code aus dem Tutorial genommen und die Portpins 
angepasst.
Weiß jemand einen Rat?
Angehängte Dateien:
#1377412
Lesenswert?

Hallo,

Hellseher befragen?

Ich befürchte, hier im Forum hat keiner eine so gut funktionierende 
Galskugel, daß er sowohl Deinen Schaltplan als auch den geänderten Code 
erkennen kann...

Was erhoffst Du also bei der Fragestellung?
Die Bestätigung, daß das Display wohl nicht initialisiert wird, kann ich 
Dir geben.

Gruß aus Berlin
Michael
Gast #1377414
Lesenswert?

Kommt mir irgendwie bekannt vor...
Hast du sicher richtig initialisiert? So vom Gefühl her sieht das aus 
nach nur 1 Zeile initialisiert und dann der Kontrast viel zu hoch. Hast 
du ein Poti am Kontrasteingang?
Gast #1377764
Lesenswert?

Anbei erst ein mal der C-Code. Schaltplan folgt.

@Florian: Ich habe ein Poti am Kontrasteingang und auch wenn ich es 
runter drehe ändert sich nichts.

@Stefan: Ich nehme den ATMega32. Die Konstillation ist identisch mit der 
des E-Blockdisplaymoduls. Wenn ich dieses verwende, läßt es sich 
initialisieren.

@Florian 2ter Eintrag: Der Code ist für den 4Bit Betrieb gedacht. Siehe 
Dateianhang
Angehängte Dateien:
#1377823
Lesenswert?

Hallo,

nicht alles durchgeschaut, aber in der Init:

   LCD_PORT &= 0xF0;          //löscht P0..3 => 0bxxxx 0000
   LCD_PORT |= 0x03;          //             => 0bxxxx 0011
   LCD_PORT &= ~(1<<LCD_RS);        // RS auf 0 =INSTRUKTION
//   LCD_PORT &= ~(1<<LCD_RW);        // RW auf 0 =INSTRUKTION

Wer setzt hier wo RW auf 0 für schreiben?

Gruß aus Berlin
Michael
Gast #1377836
Lesenswert?

Hallo Michael,

danke für deine schnelle Antwort. Aber RW ist immer konstant auf GND, da 
ich nur auf das Display schreiben möchte und nichts auslesen muss. Dies 
wird auch im Schaltplan deutlich.

MfG auch Michael
Gast #1377860
Lesenswert?

void lcd_init(void)
{
   // ben�tigte PortPins auf Ausgang schalten
   LCD_DDR = LCD_DDR | 0x0F | (1<<LCD_RS) | (1<<LCD_EN);

   // Initialisierungsroutine 4Bit-Modus 0x3, muss 3mal hintereinander 
gesendet werden
   _delay_ms(15);


Geh da mal mit dem Delay höher auf 50 oder mehr.
Obwohl ich bei dem Aufbau eher auf Hardwarefehler tippe.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren