Микроконтроллеры ATmega603/103 используют 23 источника прерывания. Эти прерывания и вектор сброса располагают отдельными программными векторами в пространстве памяти программ. Каждому прерыванию присвоен свой бит разрешения который должен быть установлен совместно с битом I регистра статуса.
Младшие адреса пространства памяти программ автоматически определяются как векторы сброса и прерываний.
Полный перечень векторов представлен в Таблице 5. Перечень представляет также уровень приоритета для каждого прерывания. Прерывания с младшими адресами имеют больший уровень приоритета. RESET имеет наивысший уровень приоритета, следующим является INT0 - Запрос внешнего прерывания 0 и т.д.
Таблица 5. Векторы сброса и прерываний
Vector No. | Program Address | Source | Interrupt Definition |
1 | $0000 | RESET | Сброс по выводу и сторожевому таймеру (Hardware Pin and Watchdog Reset) |
2 | $0002 | INT0 | Запрос внешнего прерывания 0 (External Interrupt Request 0) |
3 | $0004 | INT1 | Запрос внешнего прерывания 1 (External Interrupt Request 1) |
4 | $0006 | INT2 | Запрос внешнего прерывания 2 (External Interrupt Request 2) |
5 | $0008 | INT3 | Запрос внешнего прерывания 3 (External Interrupt Request 3) |
6 | $000A | INT4 | Запрос внешнего прерывания 4 (External Interrupt Request 4) |
7 | $000C | INT5 | Запрос внешнего прерывания 5 (External Interrupt Request 5) |
8 | $000E | INT6 | Запрос внешнего прерывания 6 (External Interrupt Request 6) |
9 | $0010 | INT7 | Запрос внешнего прерывания 7 (External Interrupt Request 7) |
10 | $0012 | TIMER2 COMP | Совпадение при сравнении таймера/счетчика 2 (Timer/Counter2 Compare Match) |
11 | $0014 | TIMER2 OVF | Переполнение таймера/счетчика 2 (Timer/Counter2 Overflow) |
12 | $0016 | TIMER1 CAPT | Захват таймера/счетчика 1 (Timer/Counter1 Capture Event) |
13 | $0018 | TIMER1 COMPA | Совпадение A при сравнении таймера/счетчика 1 (Timer/Counter1 Compare Match A) |
14 | $001A | TIMER1 COMPB | Совпадение B при сравнении таймера/счетчика 1 (Timer/Counter1 Compare Match B) |
15 | $001C | TIMER1 OVF | Переполнение таймера/счетчика 1 (Timer/Counter1 Overflow) |
16 | $001E | TIMER0 COMP | Совпадение при сравнении таймера/счетчика 0 (Timer/Counter0 Compare Match) |
17 | $0020 | TIMER0 OVF | Переполнение таймера/счетчика 0 (Timer/Counter0 Overflow) |
18 | $0022 | SPI, STC | Завершение пересылки SPI (SPI Ser ial Transfer Complete) |
19 | $0024 | UART, RX | Завершение приема UART (UART, Rx Complete) |
20 | $0026 | UART, UDRE | Регистр данных UART пуст (UART Data Register Empty) |
21 | $0028 | UART, TX | Завершение передачи UART (UART, Tx Complete) |
22 | $002A | ADC | Завершение ADC преобразования (ADC Conversion Complete) |
23 | $002C | EE READY | Готовность EEPROM (EEPROM Ready) |
24 | $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 Complete Handler) $0024 jmp UART_RXC ; Обработчик завершения приема UART (UART RX Complete Handler) $0026 jmp UART_DRE ; Обработчик пустого регистра данных (UDR Empty Handler) $0028 jmp UART_TXC ; Обработчик завершения передачи UART (UART TX Complete Handler) $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) ... ... ... ... |
<-- Предыдущая страница | Оглавление | Следующая страница --> |