Forum: Compiler & IDEs 2x16 LCD PROBLEM


von CKoch (Gast)


Angehängte Dateien:

Lesenswert?

moin moin

hab ein 2x16 LCD programmiert, dass ich soweit im Griff hab.
Ein Problem bleibt ich muss das Programm immer zwei mal flashen bevor 
ich Zeichen auf dem Display sehe.
Beim ersten flashen sehe ich keine Zeichen auf dem Display, aber der uC 
arbeitet.
Ich schätze mal das dies an der Initialisierung liegt ,oder was meint 
ihr ?

Datenblatt und Initialisierungsfunktion im Anhang.

von M. N. (Gast)


Lesenswert?

CKoch schrieb:
> Ich schätze mal das dies an der Initialisierung liegt ,oder was meint
> ihr ?

Auf den 1. flüchtigen Blick fällt auf, dass zwischen den Aufrufen 
'send_command()' keine Pausen sind. Ich kenne kein Diplay, wo nicht 
einige ms gewartet werden muß.

von CKoch (Gast)


Lesenswert?

>>Auf den 1. flüchtigen Blick fällt auf, dass zwischen den Aufrufen
>>'send_command()' keine Pausen sind. Ich kenne kein Diplay, wo nicht
>>einige ms gewartet werden muß.

Leider nicht ,den die Wartezeiten stecken in der Funktion Process().

von M. N. (Gast)


Lesenswert?

CKoch schrieb:
> Leider nicht ,den die Wartezeiten stecken in der Funktion Process().

Aber ein bißchen knapp. Du möchtest auch den 4-Bit Modus nutzen. Dazu 
verwende ich:

void lcd_init_nibble(char c)    // 4-bit-Wert ausgeben LCD_INIT
{
  lcd_nibble(c);
  _delay_ms(10);                // genug Zeit lassen
}

void init_lcd(void)             // LCD initialisieren
{
  warten();                     // 50ms
  lcd_init_nibble(0x30);
  lcd_init_nibble(0x30);
  lcd_init_nibble(0x30);
  lcd_init_nibble(0x20);
  lcd_cmd(0x28);                // im 4-bit mode
  lcd_cmd(0xc);
  lcd_cmd(1);
  warten();

Probiere es einfach aus.

von M. N. (Gast)


Lesenswert?

Ich hoffe, Du hast mittlerweile gesehen, dass zur Initialisierung des 
LCDs immer nur ein Nibble ausgegeben werden darf. Bei Deinem 
'send_command()' werden immer zwei Nibble direkt nacheinander ohne Pause 
ausgegeben.

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.