Сброс от сторожевого таймера

После переполнения сторожевого таймера, генерируется короткий им­пульс сброса длительностью в один период тактовой частоты. По окончанию этого импульса внутренний таймер начинает отсчитывать время Ttout. Подробно работа сторожевого таймера будет рассмотрена дальше.

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

AT90S8535 имеет два регистра маски прерываний GIMSK - общий ре­гистр маски прерываний, расположенный по адресу $3B($5B) и TIMSK - регистр маски прерываний от таймера/счетчика - по адресу $39($59).

Когда возникает прерывание, общий бит разрешения прерываний I очи­щается (ноль) и прерывания запрещаются. Программа пользователя может установить этот бит для разрешения прерываний. Флаг разрешения преры­ваний I устанавливается в 1 при выполнении команды выхода из прерыва­ния - RETI.

Для прерываний включаемых статическими событиями (т.е. переключа­емыми уровнем) (например совпадение значения счетчика/таймера 1 с регистром совпадения) флаг прерывания взводится, когда происходит событие. Ес­ли флаг прерывания очищен и присутствует условие возникновения преры­вания, флаг не будет установлен, пока не произойдет следующее собы­тие.

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

General Interrupt Mask Register (GIMSK)

Бит $3B($5B) R/W Нач.знач.                 GIMSK
INT1 INT0 - - - - - -
R/W R/W R R R R R R
               

Рисунок 4.7 - Общий регистр маски прерываний

Бит 7 – INT1 (External Interrupt Request 1 Enable). Разрешение запроса внешнего прерывания 1 (см.рис.4.5, табл.4.1). Биты управления запуском прерывания (ISC11 и ISC10) в регистре управления микроконтроллером (MCUCR) определяют, по какому событию отрабатывается прерывание - по спадающему или нарастающему фронту, или же по уровню. Если вывод INT1 используется для работы с внешним источником прерывания, бит DDD0 в регистре направле­ния данных порта D (DDRD), должен быть сброшен в 0, чтобы вывод INT1 работал как вход.

Бит 6 - INT0 (External Interrupt Request 0 Enable). Разрешение запроса внешнего прерывания 0 (см.рис.4.5, табл.4.1). Биты управления запуском прерывания (ISC01 и ISC00) в регистре управления микроконтроллером (MCUCR) опре­деляют, по какому событию отрабатывается прерывание - по спадающему или нарастающему фронту или же по уровню. Если вывод INT0 используется для работы с внешним источником прерывания, бит DDD2 в регистре направле­ния данных порта D (DDRD), должен быть сброшен в 0, чтобы вывод INT0 работал как вход.

Биты 5..0 - зарезервированы. В AT90S8535 эти биты зарезервированы и всегда читаются как 0.


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



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