#include #include #define F_CPU 9600000UL #define PIN_OUTPUT PB0 #define TIME_WORK 15 // минут #define TIME_PAUSE 25 // минут // Макрос для задержки на указанное количество минут #define DELAY_MINUTES(min) \ do \ { \ for (uint16_t m = 0; m < (min); m++) \ { \ for (uint16_t s = 0; s < 60; s++) \ { \ _delay_ms(1000); /* 1 секунда */ \ } \ } \ } while (0) int main(void) { // Отключаем АЦП и компаратор ADCSRA &= ~(1 << ADEN); ACSR |= (1 << ACD); // Настройка пинов DDRB |= (1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB3) | (1 << PB4); PORTB &= ~((1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB3) | (1 << PB4)); while (1) { PORTB |= (1 << PIN_OUTPUT); // LED ON DELAY_MINUTES(TIME_WORK); // 15 минут PORTB &= ~(1 << PIN_OUTPUT); // LED OFF DELAY_MINUTES(TIME_PAUSE); // 25 минут } }