Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[6]

Прерывания делятся на три типа:

•Системное (системный сброс)

•Немаскируемое (NMI)

•Маскируемое

22.1. Немаскируемые прерывания

Немаскируемые прерывания NMI не маскируются общим битом разрешения прерываний (GIE), но могут управляться индивидуальными битами включения прерывания (ACCVIE, NMIIE, OFIE). Когда происходит немаскируемое прерывание NMI, все биты разрешения NMI-прерываний автоматически сбрасываются. Выполнение программы продолжается с адреса, содержащегося в векторе немаскируемого прерывания (0FFFCh). Программное обеспечение пользователя должно установить необходимые биты NMI-прерывания, чтобы оно было разрешено вновь. Блок-схема источников NMI-прерываний показана на рис. 2.5.

Немаскируемое прерывание NMI может быть вызвано тремя событиями:

•Появление фронта сигнала на выводе RST/NMI

•Появление неисправности осциллятора

•Нарушение доступа к флэш-памяти

Вывод Reset/NMI

При включении микроконтроллера вывод RST/NMI конфигурируется как вывод сброса. Его функциональное назначение определяется в регистре управления сторожевым таймером WDTCTL. Если вывод RST/NMI запрограммирован на функцию сброса, ЦПУ будет находиться в состоянии сброса до тех пор, пока на этом выводе присутствует сигнал низкого уровня. После смены уровня на этом входе на лог.«1», ЦПУ начинает выполнять программу с команды, адрес которой хранится в векторе сброса (0FFFEh).

Если вывод RST/NMI сконфигурирован программой пользователя как вход вызова немаскируемого прерывания, фронт сигнала, выбранного битом WDTNMIES вызовет NMI-прерывание, если установлен бит NMIIE. Также будет установлен флаг NMIIFG.

Примечание:

Удержание вывода RST/NMI в состоянии лог.«0».

Когда вывод RST/NMI сконфигурирован в NMI-режиме, сигнал, вызывающий NMI-прерывание, не должен удерживаться на выводе RST/NMI в состоянии лог.«0». Если появится сигнал PUC от какого-либо источника, когда NMI-сигнал имеет низкий уровень, микроконтроллер будет сброшен, поскольку сигнал PUC изменит назначение вывода RST/NMI и он станет входом сигнала сброса.


ACCVIFG

PUC -RST/NMI

NMIFG г

Модуль Flash

IRQA: запрос прерывания принят

Рис. 2-5. Блок-схема источников немаскируемого прерывания Примечание:

Модификация WDTNMIES.

Когда выбран режим NMI и изменен бит WDTNMIES, появление NMI-пре-рывания определяется уровнем сигнала на выводе RST/NMI. Если бит выбора


фронта NMI-сигнала изменен до выбора режима NMI, немаскируемое прерывание NMI не генерируется.

Нарушение доступа к Flash-памяти

Флаг ACCVIFG устанавливается, когда происходит нарушение доступа к Flash-памяти. Генерация NMI-прерывания при нарушении доступа к Flash-па-мяти происходит при установленном бите ACCVIE. Проверкой флага ACCVIFG в процедуре обработки NMI-прерывания можно определить, было ли вызвано прерывание нарушением доступа к Flash-памяти.

Неисправность осциллятора

Сигнал неисправности осциллятора позволяет предотвратить ошибки, связанные с неправильным функционированием осциллятора. Установкой бита OFIE можно разрешить генерацию NMI-прерывания при неисправности осциллятора. С помощью флага OFIFG процедура обработки NMI-прерывания может проверить, было ли NMI-прерывание вызвано неисправностью осциллятора.

Сигнал неисправности осциллятора может быть вызван PUC-сигналом, поскольку он переводит осциллятор LFXT1 из режима HF в режим LF. Сигнал PUC также отключает осциллятор XT2.

Пример программы обработки немаскируемого прерывания NMI

NMI-прерывание имеет много возможных источников. NMI-прерывание автоматически сбрасывает биты разрешения прерываний NMIIE, OFIE и ACCVIE. Пользовательская процедура обработки NMI-прерывания сбрасывает флаги прерывания и включает биты разрешения прерываний в соответствии с требованиями приложения так, как показано на рис. 2.6.

Примечание:

Разрешение NMI-прерывания с помощью ACCVIE, NMIIE и OFIE Установка битов разрешения NMI-прерывания ACCVIE, NMIIE и OFIE не должна производится в теле процедуры обработки NMI-прерывания, за исключением случая, когда это происходит непосредственно перед командой RETI. В противном случае могут появиться вложенные NMI-прерывания, что приведет к переполнению стека и дальнейшей непредсказуемой работе.

222. Маскируемые прерывания

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



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120]