mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD Problem


Autor: Chris Lambert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!!!

Autor: Chris Lambert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl heinz Buchegger (kbucheg)
Datum:

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

Autor: Jens D. (jens) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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..

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.