#include #include #include #define F_CPU 1000000 #include #define LED_LIGHT 1 #define LED_VCC_WARNING 4 void Test_LED_toggle() { PORTB ^= (1 << LED_LIGHT); } void Full_Light() { PORTB |= (1 << LED_VCC_WARNING); // red on blue 0ff } void Half_Light() { PORTB |= (1 << LED_LIGHT); // blue on red off PORTB &= ~(1 << LED_VCC_WARNING); } void SOS() { PORTB |= (1 << LED_VCC_WARNING); // rot blau an } void Flash_Light_1() { _delay_ms(2000); // blinc PORTB |= (1 << LED_LIGHT); _delay_ms(500); PORTB &= ~(1 << LED_LIGHT); _delay_ms(500); PORTB &= ~(1 << LED_VCC_WARNING); } int main(void) { uint8_t Light_mode=0; // setting i/o ports PORTB |= (1 << PB2); // PB2 pull up DDRB = (1 << PB4) | (1<< PB1); // PB1 and PB4 output Full_Light(); // setting interrupt GIMSK |= (1<= 4) Light_mode=0; switch(Light_mode) { case 0: Full_Light(); break; case 1: Half_Light(); break; case 2: SOS(); break; case 3: Flash_Light_1(); break; } } } ISR(INT0_vect) { _delay_ms(100); // button debounce GIFR = (1<