LCD Initialisierung

Gast #260227
Lesenswert?
• ▲
▼
Ok, auch wenn das Thema schon hundert mal durchgezogen wurde ...

Ich versuche mit vier Bit ein LCD anzuwerfen. Dazu sende ich das
bekannte Muster 3 x und warte dann darauf, dass das Busy flag wieder
low wird. Und dafuer habe ich mir folgende Zeilen zusammengebastelt:

// enable Impuls
void lcd_doit()
{
  E_PORT |=(1<<E_BIT);
  _delay_ms(1);
  E_PORT &=~(1<<E_BIT);
  _delay_ms(1);
}

// Busy abwarten
void lcd_ready()
{
  //Befehl Busy flag und Adresse auslesen
        RW_PORT|=(1<<RW_BIT);
  // absenden
        lcd_doit();
        // lcd 7 als Eingang
  LCD_7_DDR &=~(1<<LCD_7_BIT);
        // solange warten bis busy flag=low
  while(LCD_7_PIN & (1<<LCD_7_BIT));
        // R/W und LCD_7 zuruecksetzen
  RW_PORT&=~(1<<RW_BIT);
  LCD_7_DDR |=(1<<LCD_7_BIT);
}

Von der Idee her richtig?
Gast #260228
Lesenswert?
• ▲
▼
Ok vielleicht sollte ich es noch ein bisschen konkretisieren: Wenn
dieser erste Schritt der Initialisierung durchgelaufen ist und ich dann
einzelne der beteiligten Bits von 0 auf 1 oder anders herum setze,
bleibt das Programm haengen.

Vielen Dank
Gast #260231
Lesenswert?
• ▲
▼
Hilft dir das weiter ? So geht's bei mir.

unsigned char LCD_Read_Busy(void)/* Read Busy Flag     */
{
unsigned char busy;

  LCD_RS_Register();        // set to instruction
  LCD_RW_Read();            // set to read
        P3DIR=0xD0;
    lcdena_on;      // E on
  busy = P3IN & 0x08;    // get LCD data
  lcdena_off;            // E off
  busy >>= 3;          // shift Busy Flag
        P3DIR=0xDF;
  return( busy );
}

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 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.