Обработчик прерывания, также известный как подпрограмма обслуживания прерывания или ISR, представляет собой специальный блок кода, связанный с определенным условием прерывания.
В основном, когда часть оборудования (аппаратное прерывание) или какая-то задача ОС (программное прерывание) должна быть запущена, она запускает прерывание. Если эти прерывания не маскируются (игнорируются), ОС останавливает свои действия и вызывает специальный код для обработки этого нового события.
При срабатывании прерывания микроконтроллер автоматически выполняет следующие действия:
- Текущий счетчик команд сохраняется в стеке младшим байтом вперед.
- Прерывания того же и более низкого приоритета блокируются.
- В случае прерываний по таймеру и внешних прерываний соответствующий флаг прерывания сбрасывается.
- Выполнение программы переходит на соответствующий векторный адрес обработчика прерывания.
- Выполняется подпрограмма обработчика прерываний.