Регистр флагов внешних прерываний - EIFR (External Interrupt Flag Register)
Биты
|
|
$38 ($58)
| INTF7
| INTF6
| INTF5
| INTF4
| -
| -
| -
| -
|
| EIFR
|
Чтение/Запись
|
|
|
Начальное состояние
|
|
|
- Bits 7..4 - INTF7 - INTF4: External Interrupt 7-4 Flags - Флаги внешних прерываний с 4 по 7
В случае поступления запроса на прерывание на какой либо из выводов INT7 - INT4, будет установлен в 1 соответствующий флаг прерывания (INTF7 - INTF4). Если бит I регистра SREG и соответствующий бит разрешения (INT7 - INT4) в EIMSK будут установлены, то MCU перейдет к вектору прерывания. По завершению подпрограммы прерывания флаг очищается. Кроме того, его можно очистить, записав в него логическую 1. - Bits 3..0 - Res: Reserved Bits - Зарезервированные биты
Эти биты зарезервированы и при считывании всегда покажут состояние 0.
Регистр управления внешними прерываниями - EICR (External Interrupt Control Register)
Биты
|
|
$38 ($58)
| ISC71
| ISC70
| ISC61
| ISC60
| ISC51
| ISC50
| ISC41
| ISC40
|
| EICR
|
Чтение/Запись
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
|
|
|
Начальное состояние
|
|
|
- Bits 7..0 - ISCX1, ISCX0: External Interrupt 7-4 Sense Control bits - Биты управления опознаванием внешних прерываний с 4 по 7
Внешние прерывания 7 - 4 активируются по выводам INT7 - INT4, если установлен флаг I в SREG и установлена соответствующая маска в EIMSK. Запрос прерывания по логическому уровню или фронтам определяется в следующей таблице:
Таблица 9. Управление опознаванием прерывания
ISCX1
| ISCX0
| Описание
|
|
| Запрос прерывания генерируется низким уровнем на INTX
|
|
| Зарезервирован
|
|
| Запрос прерывания генерируется падающим фронтом на INTX
|
|
| Запрос прерывания генерируется нарастающим фронтом на INTX
|
Примечание: X может быть равен 7, 6, 5 или 4.
При изменении битов ISC11/ISC10 прерывание должно быть запрещено путем очистки бита разрешения в регистре GIMSK. В ином случае может произойти прерывание. Запрос прерывания по логическому уровню, если он разрешен, будет генерировать запрос прерывания до тех пор, пока на входе будет находиться низкий уровень.
Регистр масок прерывания по таймерам/счетчикам - TIMSK (Timer/Counter Interrupt Mask Register)
Биты
|
|
$37 ($57)
| OCIE2
| TOIE2
| TICIE1
| OCIE1A
| OCIE1B
| TOIE1
| OCIE0
| TOIE0
|
| TIMSK
|
Чтение/Запись
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
|
|
|
Начальное состояние
|
|
|
- Bit 7 - OCIE2: Timer/Counter2 Output Compare Interrupt Enable - Разрешение прерывания по совпадению таймера/счетчика2
При установленном бите OCIE2 и установленном бите I регистра статуса разрешается прерывание по совпадению содержимого регистра сравнения и состояния таймера/ счетчика2. Соответствующее прерывание (с вектором $0012) выполняется если произойдет совпадение при сравнении содержимого регистра сравнения и состояния таймера/счетчика2. В регистре флагов прерывания TIFR (Timer/Counter Interrupt Flag Register) устанавливается флаг совпадения таймера/счетчика2. - Bit 6 - TOIE2: Timer/Counter2 Overflow Interrupt Enable - Разрешение прерывания по переполнению таймера/счетчика2
При установленном бите TOIE2 и установленном бите I регистра статуса разрешается прерывание по переполнению таймера/счетчика2. Соответствующее прерывание (с вектором $0014) выполняется если произойдет переполнение таймера/счетчика2. В регистре флагов TIFR (Timer/Counter Interrupt Flag Register) устанавливается флаг переполнения таймера/счетчика2. - Bit 5 - TICIE1: Timer/Counter1 Input Capture Interrupt Enable - Разрешение прерывания по захвату таймера/счетчика1
При установленном бите TICIE1 и установленном бите I регистра статуса разрешается прерывание по захвату таймера/счетчика1. Соответствующее прерывание (с вектором $0016) выполняется если произойдет запуск захвата по выводу 29, PD4(IC1). В регистре флагов TIFR (Timer/Counter Interrupt Flag Register) устанавливается флаг захвата таймера/счетчика1. - Bit 4 - OCE1A: Timer/Counter1 Output CompareA Match Interrupt Enable - Разрешение прерывания по совпадению регистра A с таймером/счетчиком1
При установленном бите OCIE1A и установленном бите I регистра статуса разрешается прерывание по совпадению регистра A с состоянием таймера/счетчика1. Соответствующее прерывание (с вектором $0018) выполняется если произойдет совпадение содержимого регистра A сравнения выхода с состоянием таймера/ счетчика1. В регистре флагов TIFR (Timer/Counter Interrupt Flag Register) устанавливается флаг совпадения регистра A с таймером/счетчиком1. - Bit 3 - OCIE1B: Timer/Counter1 Output CompareB Match Interrupt Enable - Разрешение прерывания по совпадению регистра B с таймером/счетчиком1
При установленном бите OCIE1B и установленном бите I регистра статуса разрешается прерывание по совпадению регистра B с состоянием таймера/счетчика1. Соответствующее прерывание (с вектором $001A) выполняется если произойдет совпадение содержимого регистра B сравнения выхода с состоянием таймера/счетчика1. В регистре флагов TIFR (Timer/Counter Interrupt Flag Register) устанавливается флаг совпадения регистра B с таймером/счетчиком1. - Bit 2 - TOIE1: Timer/Counter1 Overflow Interrupt Enable - Разрешение прерывания по переполнению таймера/счетчика1
При установленном бите OCIE1B и установленном бите I регистра статуса разрешается прерывание по переполнению таймера/счетчика1. Соответствующее прерывание (с вектором $001C) выполняется если произойдет переполнение таймера/счетчика1. В регистре флагов TIFR (Timer/Counter Interrupt Flag Register) устанавливается флаг переполнения таймера/счетчика1.При нахождении таймера/счетчика1 в PWM режиме флаг переполнения счетчика устанавливается когда счетчик изменит направление счета при $0000. - Bit 1 - OCIE0: Timer/Counter0 Output Compare Interrupt Enable - Разрешение прерывания по совпадению таймера/счетчика0
При установленном бите OCIE0 и установленном бите I регистра статуса разрешается прерывание по совпадению содержимого регистра сравнения и состояния таймера/ счетчика0. Соответствующее прерывание (с вектором $001E) выполняется если произойдет совпадение при сравнении содержимого регистра сравнения и состояния таймера/счетчика0. В регистре флагов прерывания TIFR (Timer/Counter Interrupt Flag Register) устанавливается флаг совпадения таймера/счетчика0. - Bit 0 - TOIE0: Timer/Counter0 Overflow Interrupt Enable - Разрешение прерывания по переполнению таймера/счетчика0
При установленном бите TOIE0 и установленном бите I регистра статуса разрешается прерывание по переполнению таймера/счетчика0. Соответствующее прерывание (с вектором $0020) выполняется если произойдет переполнение таймера/счетчика0. В регистре флагов TIFR (Timer/Counter Interrupt Flag Register) устанавливается флаг переполнения таймера/счетчика0.