Микроконтроллеры ATmega603/103 используют 23 источника прерывания. Эти прерывания и вектор сброса располагают отдельными программными векторами в пространстве памяти программ. Каждому прерыванию присвоен свой бит разрешения который должен быть установлен совместно с битом I регистра статуса.
Младшие адреса пространства памяти программ автоматически определяются как векторы сброса и прерываний.
Полный перечень векторов представлен в Таблице 5. Перечень представляет также уровень приоритета для каждого прерывания. Прерывания с младшими адресами имеют больший уровень приоритета. RESET имеет наивысший уровень приоритета, следующим является INT0 - Запрос внешнего прерывания 0 и т.д.
Таблица 5. Векторы сброса и прерываний
Vector No. | Program Address | Source | Interrupt Definition |
$0000 | RESET | Сброс по выводу и сторожевому таймеру (Hardware Pin and Watchdog Reset) | |
$0002 | INT0 | Запрос внешнего прерывания 0 (External Interrupt Request 0) | |
$0004 | INT1 | Запрос внешнего прерывания 1 (External Interrupt Request 1) | |
$0006 | INT2 | Запрос внешнего прерывания 2 (External Interrupt Request 2) | |
$0008 | INT3 | Запрос внешнего прерывания 3 (External Interrupt Request 3) | |
$000A | INT4 | Запрос внешнего прерывания 4 (External Interrupt Request 4) | |
$000C | INT5 | Запрос внешнего прерывания 5 (External Interrupt Request 5) | |
$000E | INT6 | Запрос внешнего прерывания 6 (External Interrupt Request 6) | |
$0010 | INT7 | Запрос внешнего прерывания 7 (External Interrupt Request 7) | |
$0012 | TIMER2 COMP | Совпадение при сравнении таймера/счетчика 2 (Timer/Counter2 Compare Match) | |
$0014 | TIMER2 OVF | Переполнение таймера/счетчика 2 (Timer/Counter2 Overflow) | |
$0016 | TIMER1 CAPT | Захват таймера/счетчика 1 (Timer/Counter1 Capture Event) | |
$0018 | TIMER1 COMPA | Совпадение A при сравнении таймера/счетчика 1 (Timer/Counter1 Compare Match A) | |
$001A | TIMER1 COMPB | Совпадение B при сравнении таймера/счетчика 1 (Timer/Counter1 Compare Match B) | |
$001C | TIMER1 OVF | Переполнение таймера/счетчика 1 (Timer/Counter1 Overflow) | |
$001E | TIMER0 COMP | Совпадение при сравнении таймера/счетчика 0 (Timer/Counter0 Compare Match) | |
$0020 | TIMER0 OVF | Переполнение таймера/счетчика 0 (Timer/Counter0 Overflow) | |
$0022 | SPI, STC | Завершение пересылки SPI (SPI Ser ial Transfer Complete) | |
$0024 | UART, RX | Завершение приема UART (UART, Rx Complete) | |
$0026 | UART, UDRE | Регистр данных UART пуст (UART Data Register Empty) | |
$0028 | UART, TX | Завершение передачи UART (UART, Tx Complete) | |
$002A | ADC | Завершение ADC преобразования (ADC Conversion Complete) | |
$002C | EE READY | Готовность EEPROM (EEPROM Ready) | |
$002E | ANALOG COMP | Срабатывание аналогового компаратора (Analog Comparator) |
Наиболее часто используемые программные установки адресов векторов сброса и прерываний:
|
|
Адрес Метка Код Комментарий$0000 jmp RESET; Обработчик сброса (Reset Handler)$0002 jmp EXT_INT0; Обработчик прерывания IRQ0 (IRQ0Handler)$0004 jmp EXT_INT1; Обработчик прерывания IRQ1 (IRQ1 Handler)$0006 jmp EXT_INT2; Обработчик прерывания IRQ2 (IRQ2 Handler)$0008 jmp EXT_INT3; Обработчик прерывания IRQ3 (IRQ3 Handler)$000A jmp EXT_INT4; Обработчик прерывания IRQ4 (IRQ4 Handler)$000C jmp EXT_INT5; Обработчик прерывания IRQ5 (IRQ5 Handler)$000E jmp EXT_INT6; Обработчик прерывания IRQ6 (IRQ6 Handler)$0010 jmp EXT_INT7; Обработчик прерывания IRQ7 (IRQ7 Handler)$0012 jmp TIM2_COMP; Обработчик сравнения таймера 2 (Timer2 Compare Handler)$0014 jmp TIM2_OVF; Обработчик переполнения таймера 2 (Timer2 Overflow Handler)$0016 jmp TIM1_CAPT; Обработчик захвата таймера 1 (Timer1 Capture Handler)$0018 jmp TIM1_COMPA; Обработчик сравнения A таймера 1 (Timer1 CompareA Handler)$001A jmp TIM1_COMPB; Обработчик сравнения B таймера 1 (Timer1 CompareB Handler)$001C jmp TIM1_OVF; Обработчик переполнения таймера 1 (Timer1 Overflow Handler)$001E jmp TIM0_COMP; Обработчик сравнения таймера 0 (Timer0 Compare Handler)$0020 jmp TIM0_OVF; Обработчик переполнения таймера 0 (Timer0 Overflow Handler)$0022 jmp SPI_STC; Обработчик завершения пересылки SPI (SPI Transfer CompleteHandler)$0024 jmp UART_RXC; Обработчик завершения приема UART (UART RX Complete Handler)$0026 jmp UART_DRE; Обработчик пустого регистра данных (UDR Empty Handler)$0028 jmp UART_TXC; Обработчик завершения передачи UART (UART TX CompleteHandler)$002A jmp ADC; Обработчик завершения преобразования ADC (ADC Conversion Complete Handler)$002C jmp EE_RDY; Обработчик готовности EEPROM (EEPROM Ready Handler)$002E jmp ANA_COMP; Обработчик срабатывания аналогового компаратора(Analog Comparator Handler);$0030 MAIN: <instr> xxx; Начало основной программы (Main program start)............ |
|
|