Обработка прерываний

Регистр статуса MCU - MCUSR - (MCU Status Register)

Регистр статуса MCU выдает информацию об источнике, вызвавшем сброс MCU.

Биты
               
$34 ($54)
- - - - - - EXTRF PORF
MCUSR
Чтение/Запись
R R R R R R R/W R/W
 
Начальное состояние
            см. описания битов
 
  • Bits 7..2 - Res: Reserved Bits - Зарезервированные биты
    Эти биты зарезервированы и при считывании всегда покажут состояние 0.
  • Bit 1 - EXTRF: External Reset Flag - Флаг внешнего сброса
    После подачи напряжения питания состояние этого бита неопределенно (X). Бит устанавливается в состояние 1 внешним сбросом. Сброс по сторожевому таймеру оставляет этот бит неизменным.
  • Bit 0 - PORF: Power On Reset Flag - Флаг включения питания
    Данный бит устанавливается сбросом по подаче питания. Сброс по сторожевому таймеру или по внешнему сбросу оставляют этот бит неизменным. В таблице показано влияние трех режимов сброса на состояния битов PORF и EXTRF.

Таблица 7. Состояния PORF и EXTRF битов после сброса

Источник сброса PORF EXTRF
Сброс по подаче питания   Неопределенное состояние
Внешний сброс Не меняется  
Сброс по сторожевому таймеру Не меняется Не меняется

Для определения режима сброса, на основании состояния данных битов PORF и EXTRF, пользовательское программное обеспечение должно сбрасывать биты PORF и EXTRF как только это позволит программа. Прежде, чем их очистить необходимо провести проверку этих битов. Если бит был очищен до внешнего сброса или сброса по сторожевому таймеру, то источник сброса может быть определен по следующей таблице истинности:

Таблица 8. Определение источника сброса

PORF EXTRF Источник сброса
    Сброс по сторожевому таймеру
    Внешний сброс
    Сброс по подаче питания
    Сброс по подаче питания

Обработка прерываний

Микроконтроллеры ATmega603/103 содержат два специальных 8-разрядных регистра масок прерываний: регистр масок внешних прерываний EIMSK (External Interrupt Mask) и регистр масок прерываний по таймеру/счетчику TIMSK (Timer/Counter Interrupt Mask). Кроме того, в регистрах управления периферией могут быть организованы и другие биты разрешения и биты масок.

При возникновении прерывания бит I разрешения глобального прерывания (Global Interrupt Enable) очищается и все прочие прерывания запрещаются. Пользовательское ПО, с тем, чтобы разрешить вложенные прерывания, может установить бит I внутри подпрограммы обработки прерывания. Выход из подпрограммы обработки прерывания происходит по команде RETI, при этом бит I устанавливается в состояние 1.

Когда счетчик команд указывает вектор подпрограммы обработки прерывания, соответствующий флаг, вызвавший прерывание, аппаратно очищается. Некоторые флаги прерываний можно очистить, записав в соответствующий бит(ы) очищаемого флага логическую единицу.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: