Вы можете запрещать и разрешать как все прерывания сразу,
так и каждое по отдельности!
Все сразу - изменяя бит7 в регистре SREG вот такими строчками
в компиляторе CodeVisionAVR:
#asm("sei") /* бит_I сделать "1" теперь разрешенные прерывания будут обрабатываться, если есть установленный флаг прерывания то произойдет вызов его функции обработчика */
#asm("cli") /* бит_I сделать "0" запретить все прерывания ГЛОБАЛЬНО. */
По отдельности рулить прерываниями сложней
это ДШ надо читать ...
Прерывания легко настроить интерактивно и главное ПРАВИЛЬНО с помощью мастеров начального кода компиляторов CVAVR и ICC.
В МК AVR и других, прерывания могут возникать по многим событиям:
- изменение уровня на некоторых ножках МК
- "0" на некоторых ножках МК
- переполнение таймеров
- "насчитывание" таймером определенного значения
- завершение АЦП преобразования
- изменение уровня на выходе компаратора
- события в USART
- другие события ...
В общем снова - читайте ДатаШит ...