Загрузка данных


#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);
            }
        }
    }
}