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