Самоучитель для микроконтроллеров AVR - Страница 88

Самоучитель для микроконтроллеров AVR - Самоучитель для микроконтроллеров AVR


В конце функции обработчика прерывания компилятор ставит инструкцию RETI после выполнения которой  бит7 в регистре SREG становится "1" - т.е. прерывания опять ГЛОБАЛЬНО разрешаются и программа продолжает выполняться с того места где она была в момент возникновения прерывания.

НО ! Если при глобальном разрешении прерываний обнаружится установленный флаг разрешенного прерывания, то будет вызвана функция обработчик 
этого прерывания.

Такая ситуация может возникнуть если во время выполнения обработчика прерывания возникло другое прерывание - т.е. установился его флаг.

Если возникнет несколько разрешенных прерываний одновременно то первым будет выполняться то которое выше в списке векторов прерываний МК в ДШ.

Соответственно  по мере отработки накопившихся и разрешенных прерываний их флаги будут очищаться.

А вот флаги неразрешенных прерываний не очистятся пока программа этого не сделает записью в них числа 1.

Go to Top