LCD Display an Mega32

OP #520243
Lesenswert?

Hallo,

nachdem ich mein Problem mit Port C nun im Griff habe, kommt auch gleich 
das nächste. Das Problem verfolgt mich schon seit Stunden oder besser 
Tagen.

Ich habe an Port C alle 8 Datenbits des LCD, die Steuerleitungen hängen 
an Port D (siehe Header File).

Mein Problem ist nun, das das Auslesen des Busy Bits des LCD nicht 
klappt. Ich lese immer eine "0". Ich hänge in der Busy Loop fest.
Kommentiere ich das "Busy Wait" aus und mache einen entsprechend langen 
Delay, funktioniert alles wie erwartet, nur viel zu langsamm.

Nur komme ich nicht dahinter was ich falsch mache.
Vielleicht kann ja einer nen Blick auf den Code werfen und mir sagen 
woran es liegt ?!

Erwähnen sollte ich noch, das ich mit dem Oszi das gleiche Messe. sobald 
"E" High wird, wird Bit 7 "0" :-( Eventuell ist es ja was im Init.

Es ist ein 2*40 Zeichen Display.

Danke
Juergen

PS: Ich willo den 8 Bit Modus nutzen, da später ein Display ran soll, 
das nur 8 Bit kann....
Gast #520349
Lesenswert?

Vorschlag zum Testen. Mach ein lcdWaitBusy draus.
1
uint8_t lcdWaitBusy(void)
2
{
3
    uint8_t c;
4
    uint8_t timeout = 255;
5
  
6
    do {
7
  RS_LOW;
8
  RW_HIGH;
9
  E_LOW;    
10
  // minimum 140ns verzögern (aus Datenblatt des Original 44780), 
11
        // da sollten die beiden Befehle bei 4MHz reichen
12
  LCD_DDR = 0x00;
13
  LCD_PORT = 0xff;  // Pullups an
14
    
15
  E_HIGH;
16
   // jetzt minimum 450ns warten
17
  lcd_e_delay(); 
18
  c = PINC & _BV(7);
19

20
  E_LOW;
21
  RW_LOW;
22
        if(c) lcd_e_delay(); // nach lesen min 400ns warten
23
    } while(c && --timeout);
24
    LCD_DDR = 0xFF;   // zurück auf output
25
    return (c);
26
}

  
OP #520482
Lesenswert?

Einen Busy Wait kann ich in meiner App leider nicht nutzen.
Mehr wie "LCD hat Zeit, Ok nextes Zeichen ausgeben, Nein, also weiter im 
Text" kann ich nicht verwenden....

Danke für den Wink mit dem "PINC", das dürfte mein Problem sein !!

So was hatte ich schon vermutet, aber nach einer gewissen Zeit sieht man 
den Wald vor lauter Bäumen nicht mehr.


Grosses DAnke !!

Juergen

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren