#define F_CPU 1000000 #include #include #include #define debounce( port, pin ) \ ({ \ static uint8_t flag = 0; /* new variable on every macro usage */ \ uint8_t i = 0; \ \ if( flag ){ /* check for key release: */ \ for(;;){ /* loop ... */ \ if( !(port & 1<25ms released */ \ flag = 0; /* clear press flag */ \ i = 0; /* 0 = key release debounced */ \ break; \ } \ } \ }else{ /* else check for key press: */ \ for(;;){ /* loop ... */ \ if( (port & 1<25ms pressed */ \ flag = 1; /* set press flag */ \ i = 1; /* 1 = key press debounced */ \ break; \ } \ } \ } \ i; /* return value of Macro */ \ }) // globale Variablen uint8_t zaehlerLED5; uint8_t zaehlerLED6; int main() { // IO konfigurieren DDRA &= ~ (1< 0 ) { zaehlerLED5--; } if ( zaehlerLED5 == 0 ) { PORTB &= ~(1< 0 ) { zaehlerLED6--; } if ( zaehlerLED6 == 0 ) { PORTB &= ~(1<