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

Eine eigene Frage? Dieser Thread ist über 24 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.