Gast
#180316
hallo,
bis jetzt habe ich immer lange genug gewartet (delay) bis das
LCD-Display auf jeden Fall bereit zum Datenempfang war, das gefällt mit
aber nicht. Also habe ich eine Routine geschrieben welche einfach
solange das Busy-Flag abfragt bis Bit 7 Low ist, das funktioniert aber
bei mir nicht. Bin auch nicht so der Profi in C. Also folgendes
Funktioniert nicht:
void lcdbsy()
{
DDRC = 0; // Port A auf Eingang setzen
PORTA = PORTA &~ (1<<DDA0); // RS low
PORTA = PORTA | (1<<DDA1); // R/W low
do
{
PORTA = PORTA &~ (1<<DDA2); // E Low
_delay_ms(5);
PORTA = PORTA | (1<<DDA2); // E High
}
while ((PORTC & 128) != 128); // Solange durchlaufen bis Bit 7 Low
ist
DDRC = 255; // Port A auf Ausgang setzen
}
Danke für einen Tip.