Обработка прерываний и сброса

Микроконтроллеры 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)............

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: