#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void) {
DDRB |= (1 << PB0) | (1 << PB1) | (1 << PB2);
DDRC &= ~(1 << PC0);
PORTC |= (1 << PC0);
int active = 0;
while (1) {
if (!(PINC & (1 << PC0))) {
active = !active;
while(!(PINC & (1 << PC0)));
_delay_ms(50);
if (active == 0) {
PORTB = 0;
}
}
if (active) {
PORTB = (1 << PB0);
_delay_ms(2000);
PORTB = (1 << PB1);
_delay_ms(1000);
for (int i = 0; i < 2; i++) {
PORTB = (1 << PB2);
_delay_ms(500);
PORTB &= ~(1 << PB2);
_delay_ms(500);
}
}
}
}