В HTML      В PDF
микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > AVR > Архитектура

реклама

 
радиационно стойкие ПЗУ Миландр

Продажа силового и бронированного кабеля и провода в Москве




Arduino Uno R3 Atmega328
готовый модуль
Лучшая Цена 335 руб




Стартовый набор с большим набором аксесуаров
Arduino Uno R3 Atmega328
Лучшая Цена 2211 руб



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

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


<-- Предыдущая страница Оглавление Следующая страница -->





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (495) 514 4110. e-mail:info@eust.ru
©1998-2016 ООО Рынок Микроэлектроники