ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
417669 Топик полностью
Apтём (14.06.2013 17:42, просмотров: 166) ответил AU08 на Т.е. в mainloop возврат возможен только в разбуженном виде, и уже в mainloop надо принять решение спать иль не спать. "Больной, проснитесь, проснитесь! Примите снотворное!"
... 
Т.е. в mainloop возврат возможен только в разбуженном виде, и уже в mainloop надо принять решение спать иль не спать
Что значит возврат? засыпание обычно в main-е и делается. volatile unsigned char AdcReady; #pragma vector=ADCA_CH0_vect __interrupt void AdcCycleCompleteInt() { AdcReady=1; } void main() { InitIO(); while (1) { SLEEP.CTRL=SLEEP_SMODE_IDLE_gc | SLEEP_SMODE_IDLE_gc;// примерно так но может я чего и забыл __sleep(); if (AdcReady) { AdcReady=0; // какие-то действия } } } После прерывания программа продолжит выполнять код после инструкции sleep. B где-то там решит спать дальше или нет.