Внешние прерывания
Доступно 2 источника внешних прерываний
Настраиваемый уровень или фронт/спад для запуска прерывания
Может использоваться как источник пробуждения в режимах сна
Обзор
Внешние прерывания генерируются выводами INT0 и INT1. Внешнее прерывание может сработать, даже если эти два вывода сконфигурированы как выходы, при условии, что внешнее прерывание разрешено. Это можно использовать для создания программного прерывания. Внешние прерывания могут запускаться по возрастающему фронту, падающему фронту или низкому уровню сигнала, что настраивается с помощью регистра управления внешними прерываниями EICRA. Когда внешнее прерывание разрешено и настроено на запуск по уровню (только для выводов INT0 и INT1), прерывание будет генерироваться непрерывно, пока на выводе присутствует низкий уровень. Для запуска прерывания по нарастающему или падающему фронту на выводах INT0 и INT1 требуется 10 тактов, в то время как запуск по низкому уровню на этих выводах обрабатывается асинхронно. Во всех режимах сна, кроме режима Idle, тактирование ввода-вывода остановлено. Поэтому оба внешних прерывания могут использоваться как источники пробуждения во всех режимах сна, кроме режима Idle.
Если прерывание по уровню используется для пробуждения в режиме энергосбережения, изменённый уровень должен удерживаться в течение определённого времени, чтобы разбудить MCU и снизить чувствительность к шумам. Требуемый уровень должен сохраняться достаточно долго, чтобы MCU успел завершить процесс пробуждения и затем вызвать прерывание по уровню.
Описание регистров
Регистр |
Адрес |
Значение по |
Описание |
|---|---|---|---|
EICRA |
0x69 |
0x00 |
Регистр управления внешними прерываниями A |
EIMSK |
0x3D |
0x00 |
Регистр маски внешних прерываний |
EIFR |
0x3C |
0x00 |
Регистр флагов внешних прерываний |
Регистр управления внешними прерываниями A — EICRA
Адрес: 0x69 |
Значение по умолчанию: 0x00 |
|---|
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|---|
Имя |
- |
- |
- |
- |
ISC11 |
ISC10 |
ISC01 |
ISC00 |
R/W |
- |
- |
- |
- |
R/W |
R/W |
R/W |
R/W |
Описание битов
Бит |
Имя |
Описание |
|---|---|---|
7:4 |
- |
Зарезервировано. |
3 |
ISC11 |
Старший бит управления режимом триггера прерывания для вывода INT1. |
2 |
ISC10 |
Младший бит управления режимом триггера прерывания для вывода INT1. |
1 |
ISC01 |
Старший бит управления режимом триггера прерывания для вывода INT0. |
0 |
ISC00 |
Младший бит управления режимом триггера прерывания для вывода INT0. |
Режим срабатывания внешнего прерывания 1 приведён в таблице:
ISC1[1:0] |
Описание |
|---|---|
0 |
Низкий уровень сигнала на выводе INT1 |
1 |
Фронт или спад сигнала на выводе INT1 |
2 |
Спад сигнала на выводе INT1 |
3 |
Фронт сигнала на выводе INT1 |
Режим срабатывания внешнего прерывания 0 приведён в таблице:
ISC0[1:0] |
Описание |
|---|---|
0 |
Низкий уровень сигнала на выводе INT0 |
1 |
Фронт или спад сигнала на выводе INT0 |
2 |
Спад сигнала на выводе INT0 |
3 |
Фронт сигнала на выводе INT0 |
Регистр маски внешних прерываний — EIMSK
Адрес: 0x3D |
Значение по умолчанию: 0x00 |
|---|
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|---|
Имя |
- |
- |
- |
- |
- |
- |
INT1 |
INT0 |
R/W |
- |
- |
- |
- |
- |
- |
R/W |
R/W |
Описание битов
Бит |
Имя |
Описание |
|---|---|---|
7:2 |
- |
Зарезервировано |
1 |
INT1 |
Бит разрешения прерывания от внешнего вывода 1. |
0 |
INT0 |
Бит разрешения прерывания от внешнего вывода 0. |
Регистр флагов внешних прерываний — EIFR
Адрес: 0x3C |
Значение по умолчанию: 0x00 |
|---|
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|---|
Имя |
- |
- |
- |
- |
- |
- |
INTF1 |
INTF0 |
R/W |
- |
- |
- |
- |
- |
- |
R/W |
R/W |
Описание битов
Бит |
Имя |
Описание |
|---|---|---|
7:2 |
- |
Зарезервировано |
1 |
INTF1 |
Флаг прерывания от внешнего вывода 1. |
0 |
INTF0 |
Флаг прерывания от внешнего вывода 0. |