Рисунок 4.7 - Общий регистр флагов прерываний
General Interrupt Flag Register (GIFR)
Рисунок 4.7 - Общий регистр маски прерываний
General Interrupt Mask Register (GIMSK)
Бит $3B($5B) R/W Нач.знач. | GIMSK | ||||||||
INT1 | INT0 | - | - | - | - | - | - | ||
R/W | R/W | R | R | R | R | R | R | ||
Бит 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.
Бит $3A($5A) R/W Нач.знач. | GIFR | ||||||||
INTF1 | INTF0 | - | - | - | - | - | - | ||
R/W | R/W | R | R | R | R | R | R | ||
Бит 7 - INTF1 (External Interrupt Flag1). Флаг внешнего прерывания 1. При возникновении на выводе INT1 события, вызывающего прерывание, INTF1 устанавливается в "1". Если установлены бит I регистра SREG и бит INT1 в GIMSK, происходит переход на вектор прерывания по адресу $002. Флаг очищается после выполнения обработчика прерывания. Кроме того, флаг можно очистить, записав в него логическую единицу.
Бит 6 - INTF0 (External Interrupt Flag1). Флаг внешнего прерывания 0. При возникновении на выводе INT0 события вызывающего прерывание, INTF0 устанавливается в "1". Если установлены бит I регистра SREG и бит INT0 в GIMSK, происходит переход на вектор прерывания по адресу $001. Флаг очищается после выполнения обработчика прерывания. Кроме того, флаг можно очистить, записав в него логическую единицу.
Биты 5..0 - зарезервированы. В AT90S8535 эти биты зарезервированы и всегда читаются как 0.
4.10.2.3 Timer/Counter Interrupt Mask Register (TIMSK)
Регистр маски прерывания от таймеров/счетчиков
Бит $39($59) R/W Нач.знач. | TIMSK | ||||||||
OCIE2 | TOIE2 | TICIE1 | OCIE1A | OCIE1B | TOIE1 | - | TOIE0 | ||
R/W | R/W | R/W | R/W | R/W | R/W | R | R/W | ||
Бит 7 – OCIE2 (Timer/Counter2 Output Compare Match Interrupt Enable). Разрешение прерывания по совпадению таймера/счетчика 2 (см.рис.4.5, табл.4.1). Прерывание (вектор $003) выполняется при равенстве содержимых таймера/счетчика 1 и регистра совпадения B.
|
|
Бит 6 – TOIE2 (Timer/Counter2 Overflow Interrupt Enable). Разрешение прерывания по переполнению таймера/счетчика 2 (см.рис.4.5, табл.4.1). Прерывание (вектор $004) выполняется при переполнении таймера/счетчика 1.
Бит 5 - TICIE1(Timer/Counter1 Input Capture Interrupt Enable). Разрешение прерывания по входу захвата (см.рис.4.5, табл.4.1). Прерывание (вектор $005) выполняется по сигналу захвата на выводе 11 (PD6/ICP).
Бит 4 - OCIE1A(Timer/Counter1 Output CompareA Match Interrupt Enable). Разрешение прерывания по совпадению таймера/счетчика 1 (см.рис.4.5, табл.4.1). Прерывание (вектор $006) выполняется при равенстве содержимого таймера/счетчика 1 и регистра совпадения B.
Бит 3 - OCIE1B (Timer/Counter1 Output CompareB Match Interrupt Enable). Разрешение прерывания по совпадению таймера/счетчика 1 (см.рис.4.5, табл.4.1). Прерывание (вектор $007) выполняется при равенстве таймера/счетчика 1 и регистра совпадения B.
Бит 2 - TOIE1(Timer/Counter1 Overflow Interrupt Enable). Разрешение прерывания по переполнению таймера/счетчика 1 (см.рис.4.5, табл.4.1). Соответствующее прерывание (вектор $008) выполняется при переполнении таймера/счетчика 1. Если таймер/счетчик 1 работает в режиме ШИМ, флаг переполнения устанавливается при изменении направления счета, при значении $0000.
Бит 1- зарезервирован; в AT90S8535 этот бит зарезервирован и всегда читается как 0.
Бит 0 - TOIE0 (Timer/Counter0 Overflow Interrupt Enable). Разрешение прерывания по переполнению таймера/счетчика 0 (см.рис.4.5, табл.4.1). При возникновении переполнения выполняется вектор прерывания ($009).
4.10.2.4 Timer/Counter Interrupt Flag Register (TIFR)
Бит $38($58) R/W Нач.знач. | TIFR | ||||||||
OCF2 | TOV2 | ICF1 | OCF1A | OCF1B | TOV1 | - | TOV0 | ||
R/W | R/W | R/W | R/W | R/W | R/W | R | R/W | ||
Рисунок 4.8 - Флаговый регистр прерываний от таймеров/счетчиков
Бит 7 - OCF2 (Output Compare Flag 2). Флаг выхода совпадения 1А (см.рис.4.5). Флаг устанавливается в "1" если происходит совпадение значения таймера/счетчика 2 и данных в регистре OCR2 (Output Compare Register2). Флаг очищается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно сбросить, записав в него логическую единицу.
Бит 6 – TOV2 (Timer/Counter2 Overflow Flag). Флаг переполнения таймера счетчика 2 (см.рис.4.5). Флаг TOV2 устанавливается ("1") при переполнении таймера/счетчика 2. Флаг сбрасывается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно очистить, записав в него логическую единицу.
Бит 5 - ICF1 (Input Capture Flag 1). Флаг входа захвата 1 (см.рис.4.5). Бит устанавливается в «1» при возникновении события захвата по входу. Он индицирует, что значение таймера/счетчика 1 скопировано в регистр захвата ICR1. Флаг ICF1 очищается при выполнении соответствующего вектора обработки прерывания. Кроме того, флаг можно очистить, записав в него логическую единицу.
Бит 4 - OCF1A (Output Compare Flag 1A). Флаг выхода совпадения 1А (см.рис.4.5). Флаг устанавливается в «1», если происходит совпадение значения таймера/счетчика 1 и данных в регистре OCR1A. Флаг очищается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно сбросить, записав в него логическую единицу.
Бит 3 - OCF1B (Output Compare Flag 1B). Флаг выхода совпадения 1B (см.рис.4.5). Флаг устанавливается в «1», если происходит совпадение значения таймера/счетчика 1 и данных в регистре OCR1B. Флаг очищается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно сбросить записав в него логическую единицу.
Бит 2 - TOV1 (Timer/Counter1 Overflow Flag). Флаг переполнения таймера/счетчика 1 (см.рис.4.5). Флаг TOV1 устанавливается в «1» при возникновении переполнения таймера/счетчика 1. Флаг TOV1 сбрасывается аппаратно при выполнении соответствующего вектора обработки прерывания. Кроме того, флаг можно сбросить, записав в него логическую единицу. В режиме ШИМ этот бит устанавливается, когда таймер/счетчик 1 изменяет направление счета при значении $0000.
|
|
Бит 1 - зарезервирован; в AT90S8535 этот бит зарезервирован и всегда читается как 0.
Бит 0 - TOV0 (Timer/Counter0 Overflow Flag). Флаг переполнения таймера счетчика 1 (см.рис.4.5). Флаг TOV0 устанавливается в «1» при переполнении таймера/счетчика 0. Флаг сбрасывается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно очистить, записав в него логическую единицу.
Запросы на прерывания от внешних источников подаются на входы INT0 и INT1. Прерывания обрабатываются даже тогда, когда выводы сконфигурированы как выходы. Это позволяет генерировать программные прерывания. Внешние прерывания могут возникать по спадающему или нарастающему фронту, а также по низкому уровню. Это устанавливается в регистре управления процессором MCUCR (см.п.4.10.5). Если внешние прерывания разрешены и сконфигурированы на отработку по уровню, прерывание будет вырабатываться до тех пор, пока вывод удерживается в низком состоянии.