Update. Посоветуйте, как быть. Первый вопрос: Обязательно ли перед каждой командой sleep инициализировать спящий режим? Или можно единожды в блоке инициализации включить спящий режим и потом уходить в спячку по команде sleep?
Второй вопрос: Задействован АЦП. Генератор внутренний. От прерывания ADC отказался. Программа примерно такая:
void main(void){
wdt_enable(6);
//OCR0 = 200;
//TCCR0=_BV(CS00)|_BV(CS02);
//TIMSK=_BV(OCIE0);
sei();
while(1)
{
wdt_reset();
Service_Timers();
Proc_ADC();
Proc_1();
Proc_2();
}
}
В подпрограмме Proc_ADC инициализируется ADC и уходит в спячку. Системный тик 1 мс. Свободного времени после одного прохода карусели остается много. Следует ли после команды sleep обезопаситься от прерывания по таймеру проверкой флага ADC_COMPLETE_FLG?