Gast
#1530952
Hallo liebes Forum,
ich weiß es gibt hier einige Codebeispiel und ich habe sie schon alle
durch, allerdings hat mich kein einziger Codeteil weitergebracht.
Ich bin echt am verzweifeln. Das müsste doch ganz einfach sein.
Ich lese das Busy-Flag von einem HD44780 im 4-Bit Mode.
void toggle_enable(void)
{
LCD_PORT |= (1<<LCD_EN); // EN- Pin auf 1 setzen
delay(1);
LCD_PORT &= ~(1<<LCD_EN); // EN- Pin auf 0 setzen
}
void read_busy_flag(void)
{
DDRA &= ~( (1 << DDA0) | ( 1<<DDA1) | ( 1<<DDA2) | ( 1<<DDA3) ); //
Pin 0-3 als Eingang
LCD_PORT &= ~(1<<LCD_RS); // RS- Pin auf 0 setzen
LCD_PORT |= (1<<LCD_RW); // RW- Pin auf 1 setzen
while(a != 0)
{
toggle_enable();
a = (LCD_PIN & 0x01); // obere Nibble einlesen (DB4 - DB7)
toggle_enable();
b = LCD_PIN; // untere Nibble einlesen (DB0 - DB3)
}
DDRA |= ( (1 << DDA0) | ( 1<<DDA1) | ( 1<<DDA2) | ( 1<<DDA3) ); //
Pin 0-3 als Ausgang
LCD_PORT &= ~(1<<LCD_RW); // RW- Pin auf 0 setzen
}
Ich weiß echt nicht mehr weiter. Seht ihr vielleicht einen Fehler??
Viele Grüße und ein frohes Fest euch allen!!
Peter