7.2 Прерывания

Прерывание (Interrupt) – сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается и управление передаётся обработчику прерывания, после чего исполнение кода продолжается ровно с того места где программа была прервана.

Прерывания бывают внутренние, иницированные встроенными механизмами контроллера или внешние - от других устройств.

Приоритеры

В TOIC 4 уровня приоритета прерываний: 0 - самый высокий, 4 - самый низкий. Прерывание более высокого уровня может прерывать низкоуровневое прерывание.

Таймер

Прерывание функцией, запущенной по таймеру.

var function_name()

Входящее сообщение

Прерывание с данными, полученными по какому-либо интерфейсу. var _msg()

Внешнее прерывание по пину

var _exti(var pin, var level)

Подтверждение доставки сообщения

Состояние доставки отправленного сообщения (для каналов связи с поддержкой подтверждения).

var _ack(var status)

Функции для работы с прерываниями:

Вспомогательные функции для работы с прерываниями.

Отложенный запуск функции по таймеру.

Функция запущенная командой timer выполняется в контексте прерывания (с приоритетом 3). var timer(var ms, function)

Запретить прерывания

var __disable_irq()

Разрешить прерывания

var __enable_irq()