ВУЗ:
Составители:
Рубрика:
73
Прерывания по таймеру
Установка флага TFx приводит к тому, что микропроцессор отры-
вается от работы по основной программе и переходит на подпрограм-
му обработки прерывания по таймеру T/Cx, размещённую в ПЗУ по
адресу 0x000B для T/C0 или 0x001B для T/C1. Для возврата в нужную
точку основной программы после выполнения подпрограммы обра-
ботки прерывания происходит сохранение адреса текущей выполняе-
мой команды основной программы в стеке [16 – 18].
При выполнении отдельных частей программы бывает необходи-
мо отключить возможность прерывания микропроцессора. Для этого
предназначен регистр IEN0 масок прерываний (табл. 13.3). Все дос-
тупные биты этого регистра устанавливаются и сбрасываются про-
граммно. Для разрешения соответствующего прерывания бит устанав-
ливается, для запрета – сбрасывается. Для разрешения прерывания,
например, только от T/C0, необходимо, чтобы ET0 = 1 и EA = 1, а ос-
тальные биты были сброшены. В соответствии со столбцом «Разряд»
табл. 13.3 в двоичной системе получим IEN0 = 10000010
2
, а в шестнад-
цатеричной IEN0 = 0x82. Строку IEN0 = 0x82; необходимо записать в
начале функции main() программы на языке Си для конфигурации сис-
темы прерываний. Кроме регистра IEN0 масок прерываний существует
также регистр IP0 приоритетов прерываний. Поскольку в настоящей
работе используется только один источник прерываний, его использо-
вание нецелесообразно.
13.3. Регистр масок прерываний IEN0
Символ Разряд Имя и назначение
EA IEN0.7 Общее разрешение прерываний. Разреше-
ние/запрет всех прерываний независимо
от состояний IEN0.4…IEN0.0
EAD IEN0.6 Разрешение прерывания от АЦП
ES1 IEN0.5 Разрешение прерывания от модуля
интерфейса I
2
C
ES0 IEN0.4 Разрешение прерывания от UART
ET1 IEN0.3 Разрешение прерывания от таймера T/C1
EX1 IEN0.2 Разрешение внешнего прерывания INT1
ET0 IEN0.1 Разрешение прерывания от таймера T/C0
EX0 IEN0.0 Разрешение внешнего прерывания INT0
Страницы
- « первая
- ‹ предыдущая
- …
- 71
- 72
- 73
- 74
- 75
- …
- следующая ›
- последняя »