Probleme mit 20x4 LCD

Gast #14982
Lesenswert?

Hallo
Habe ein 204A-Display von Displaytech an einen AT90S8535 angeschlossen. 
In mein Programm hab ich ne Funktion übernommen, die vorher schon von 
jemand getestet wurde und funktionierte. Anfangs hatte ich das Problem, 
daß das Display manchmal wahrlos Zeichen ausgegeben hat. Habe dann mit 
dem Datenblatt das Timing etwas verändert, danach funtionierte es 
problemlos für genau 10 Tage. Heute trat das gleiche Problem wieder auf, 
aber nicht, daß es nur manchmal passierte sondern ständig. Kann mir 
jemand weiterhelfen?
Gast #14983
Lesenswert?

Hi Swen,

betreibst Du das Disply im 4-Bit-Mode oder im 8-Bit-Mode?
Im 4-Bit-Modus kann man gravierende Fehler beim Initialisieren machen. 
Danach kann man ewig suchen (wie ich).

4-Bit:
_long_delay();
_long_delay();
_lcd_write_4bit(0x03);     // noch 8 Bit-Mode
_long_delay();
_lcd_write_4bit(0x03);     // noch 8 Bit-Mode
_long_delay();
_lcd_write_4bit(0x03);     // noch 8 Bit-Mode
_long_delay();
_lcd_write_4bit(0x02);     // jetzt 4 Bit-Mode
_long_delay();
_lcd_write_data(0x28);     // 4 Bit Zweizeilig
_long_delay();
_lcd_write_data(0x08);     // Display aus
_long_delay();
_lcd_write_data(0x01);     // Clear
_long_delay();
_lcd_write_data(0x06);     //Entry mode
_long_delay();
_lcd_write_data(0x08 + 4); // Display an
_long_delay();

//++++++++++++++++++++++++++++++++++++++++++++++
Und 8-Bit:

void lcd_init(void)
{
_long_delay();
_lcd_write_data(0x38);   // 8-Bit:0x38
_long_delay();
_lcd_write_data(0x38);
_long_delay();
_lcd_write_data(0x02);
_long_delay();
_lcd_write_data(0x06);
_long_delay();
_lcd_write_data(0x0c);
_long_delay();
_lcd_write_data(0x10);
_long_delay();
_lcd_write_data(1);   // clear LCD
_long_delay();

}

Viel Erfolg,
Holger
Gast #14984
Lesenswert?

Hallo

Kann es sein das es nicht initialisiert ist?
z.b. im laufenden Betrieb abgesteckt worden oder Kontaktfehler.

Du könntest das LCD ja öfter neu initialisieren.
Wenn ich Probleme hatte dann war es ein Timingroblem oder eine 
Neuinitialisierung notwendig.

Verwendest das BUSYflag?

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