Forum: Mikrocontroller und Digitale Elektronik LCD Problem


von Chris Lambert (Gast)


Lesenswert?

Hallo,

ich experiementiere im Moment ein bisschen mit dem LCD herum, dabei
habe ich folgendes Problem.

Die initialisierung des LCDs funktioniert soweit ganz gut, d.h. der
Cursor blinkt nach der initialisierung.

Hier mal die Ini Funktrion:

void lcd_ini()
{
  int i=0;
  for(i=0;i<5;i++)
  {
    delay();
  }
/*  for(i=0;i<2;i++)
  {
    lcd_write(0x33,0);    //init in 8-Bit Mode
  }
*/
/*
lcd_write_data(0x22,0);
lcd_write_data(0x80,0);
lcd_write_data(0xF0,0);
lcd_write_data(0x10,0);
lcd_write_data(0x60,0);
*/
PTT|=(1<<DB5);
delay();
lcd_flash_e();
delay();
lcd_flash_e();
PTT&=~(1<<DB5);
delay();
PTT|=(1<<DB7); //2-lines
delay();
lcd_flash_e();
PTT&=~(1<<DB7);
delay();
lcd_flash_e();
PTT|=(1<<DB4)|(1<<DB5)|(1<<DB6)|(1<<DB7);
delay();
lcd_flash_e();
PTT=0x00;
delay();
lcd_flash_e();
PTT|=(1<<DB4);
delay();
lcd_flash_e;
PTT=0x00;
delay();
lcd_flash_e();
PTT|=(1<<DB5)|(1<<DB6);
delay();
lcd_flash_e();
PTT=0x00;

};

Anschließend möchte ich gerne die Cursor Position veränden, z.B. an
Position 4 in der ersten Zeile setzen:

PTT |= (1<<DB6);
lcd_flash_e();
PTT = 0x00;
PTT |= (1<<DB7);
lcd_flash_e();
PTT=0x00;

nachdem ich diesen Befehl ausführe, verschwindet der Cursor immer, ist
aber egal welchen Befehl ich ausführe??
Kann mir da vielleicht jemand helfen?

Danke schon mal im voraus!!!

von Chris Lambert (Gast)


Lesenswert?

Hallo nochmals,

so langsam komme ich hinter das Problem, ich denke es liegt an der
Abfrage des busyflag...

Wenn ich das richtig verstanden habe, lese ich über den PORT DB7 im
4-Bit Betriebsmodi die Busyflag aus??
 Verstehe ich das richtig, bzw. wie schaut eine busyflag Abfrage aus
(C-Code mäßig)

Danke im voraus

von Karl heinz B. (kbucheg)


Lesenswert?

Vorschlag:
Hol Dir vom Peter Fleury die LCD Library
http://homepage.hispeed.ch/peterfleury/avr-software.html
und studier diese.

von Jens D. (jens) Benutzerseite


Lesenswert?

Setz mal den Takt herunter, das LCD ist recht lahm..

Hier im Forum / Tutorial ist ein ASM Code, der mit 4MHz wunderbar
funktioniert, aber bei 8MHz nur probleme bereitet..

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.