#include #include #include #define Link1pin PB2 // Пин оптопары светодиода линка #define Link2pin PB1 // Пин оптопары светодиода линка #define PLCPWRpin PB4 // Питание PLC #define EXTPWRpin PB0 // Питание модема #define MODE_WAIT_LINK 1 #define MODE_LINK_UP 2 #define MODE_SLEEP 3 uint8_t cur_mode = 0; // Текущий режим uint8_t new_mode = 0; // Новый режим volatile uint16_t timer = 0; ISR(TIM0_OVF_vect) { if(timer > 0) { timer--; } } uint8_t check_link(void) // Проверка линка { if(!(PINB & (1 << Link1pin) || PINB & (1 << Link2pin))) // Если горит хотя бы один светодиод линка { return 1; // То возвращаем 1 } else // Если нет { return 0; // То возвращаем 0 } } int main(void) { DDRB &= ~((1<