Код: Выделить всё
// переход в спячку
if ( cntr1 >= 20) {
cntr1 = 1;
TMR1_Stop(); // останов таймкра 1
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
// сигнализируем о переходе в спячку
PORTA = 0b00001111;
_delay_ms(1000);
PORTA = 0x00;
_delay_ms(100);
TCNT1 = 0;
ClearBit(PORTA,6);
// разрешаем прерывание по низкому уровню INT0
GoToSleep();
// Засыпаем
sleep_enable();
sleep_cpu();
// запрещаем прерывание по низкому уровню INT0
GIMSK = 0x00;
MCUCR = 0x00;
GIFR = 0x00;
} // mode READY Код: Выделить всё
ISR (INT0_vect) {
GIMSK = 0;
GIFR = 0x00;
TMR1_Start(); // запуск таймера 1
} // INT0



