13.1. Отличительные особенности
13.2. Обзор
В микроконтроллеры XMEGA A3 входит программируемый многоуровневый контроллер прерываний (PMIC-контроллер). Для каждого из УВВ можно задать один из трех уровней приоритета прерываний: высокий, средний или низкий. Прерывания со средним уровнем приоритета могут прервать выполнение процедур обработки прерывания с низким приоритетом. Прерывания с высоким уровнем приоритета могут прервать процедуры обработки прерываний, как со средним, так и с низким приоритетом. Прерывания с низким приоритетом могут обрабатываться по опциональной кольцевой схеме. Ее использование гарантирует обработку всех прерываний за определенное время.
Кроме того, встроенная в МК схема обнаружения отказа генератора может инициировать немаскируемое прерывание (NMI).
13.3. Векторы прерываний
После поступления запроса на обработку прерывания в счетчик программы помещается адрес вектора прерывания. Вектор прерывания является суммой базового адреса прерывания УВВ и смещения адреса конкретного прерывания УВВ. Базовые адреса микроконтроллеров XMEGA A3 представлены в таблице 13.1. Смещение адресов для каждого из прерываний можно найти в описании каждого конкретного УВВ в руководстве по МК XMEGA A. В таблице 13.1 также показаны вектора прерываний тех УВВ или модулей, которые поддерживают только одно прерывание. Программный адрес - слово адреса.
Таблица 13.1. Векторы сброса и прерываний
Программный адрес (базовый адрес) |
Источник |
Описание прерывания |
0x000 |
RESET |
|
0x002 |
OSCF_INT_vect |
Немаскируемое прерывание при обнаружении отказа кварцевого генератора |
0x004 |
PORTC_INT_base |
Базовый адрес прерываний порта C |
0x008 |
PORTR_INT_base |
Базовый адрес прерываний порта R |
0x00C |
DMA_INT_base |
Базовый адрес прерываний DMA-контроллера |
0x014 |
RTC_INT_base |
Базовый адрес прерываний счетчика реального времени |
0x018 |
TWIC_INT_base |
Базовый адрес прерываний интерфейса TWI (порт C) |
0x01C |
TCC0_INT_base |
Базовый адрес прерываний таймера-счетчика 0 (порт C) |
0x028 |
TCC1_INT_base |
Базовый адрес прерываний таймера-счетчика 1 (порт C) |
0x030 |
SPIC_INT_vect |
Базовый адрес прерываний интерфейса SPI (порт C) |
0x032 |
USARTC0_INT_base |
Базовый адрес прерываний интерфейса USART 0 (порт C) |
0x03D |
USARTC1_INT_base |
Базовый адрес прерываний интерфейса USART 1 (порт C) |
0x03E |
AES_INT_vect |
Вектор прерывания AES |
0x040 |
NVM_INT_base |
Базовый адрес прерываний энергонезависимой памяти |
0x044 |
PORTB_INT_base |
Базовый адрес прерываний (порт В) |
0x048 |
ACB_INT_base |
Базовый адрес прерываний аналогового компаратора (порт B) |
0x04E |
ADCB_INT_base |
Базовый адрес прерываний АЦП (порт В) |
0x056 |
PORTE_INT_base |
Базовый адрес прерываний порта Е |
0x05A |
TWIE_INT_base |
Базовый адрес прерываний интерфейса TWI (порт Е) |
0x05E |
TCE0_INT_base |
Базовый адрес прерываний таймера-счетчика 0 (порт Е) |
0x06A |
TCE1_INT_base |
Базовый адрес прерываний таймера-счетчика 1 (порт Е) |
0x072 |
SPIE_INT_vect |
Базовый адрес прерываний интерфейса SPI (порт Е) |
0x074 |
USARTE0_INT_base |
Базовый адрес прерываний интерфейса USART 0 (порт Е) |
0x07A |
USARTE1_INT_base |
Базовый адрес прерываний интерфейса USART 1 (порт Е) |
0x080 |
PORTD_INT_base |
Базовый адрес прерываний порта D |
0x084 |
PORTA_INT_base |
Базовый адрес прерываний порта A |
0x088 |
ACA_INT_base |
Базовый адрес прерываний аналогового компаратора (порт A) |
0x08E |
ADCA_INT_base |
Базовый адрес прерываний АЦП (порт A) |
0x09A |
TCD0_INT_base |
Базовый адрес прерываний таймера-счетчика 0 (порт D) |
0x0A6 |
TCD1_INT_base |
Базовый адрес прерываний таймера-счетчика 1 (порт D) |
0x0AE |
SPID_INT_vector |
Базовый адрес прерываний интерфейса SPI (порт D) |
0x0B0 |
USARTD0_INT_base |
Базовый адрес прерываний интерфейса USART 0 (порт D) |
0x0B6 |
USARTD1_INT_base |
Базовый адрес прерываний интерфейса USART 1 (порт D) |
0x0D0 |
PORTF_INT_base |
Базовый адрес прерываний порта F |
0x0D8 |
TCF0_INT_base |
Базовый адрес прерываний таймера-счетчика 0 (порт F) |
0x0EE |
USARTF0_INT_base |
Базовый адрес прерываний интерфейса USART 0 (порт F) |