Hallo inka,
das stimmt natürlich.key |= (PIND&LCD_KEY_RED); //PINB in PIND![]()
Das stimmt so leider nicht. Zum löschen von Bits wird eine 1 an die entsprechende Stelle geschoben. Dann wird das ganze bitweise negiert und mit dem aktuellen Wert UND-verknüft.DDRD &= ~((0<<PD2)|(0<<PD6));
DDRB &= ~(0<<PB3);
Assonsten funtkioniert das Programm bei mir ganz gut (Wenn man die Wartezeit auf 100ms verkürzt).
Lesezeichen