Микроконтроллер AT90S2313


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


В AT90S2313 предусмотрены 10 источников прерываний.  Эти  прерывания и сброс имеют различные векторы в области памяти программ. Каждому из прерываний присвоен отдельный бит разрешающий данное прерывание при установке бита в 1, если бит I регистра состояния разрешает общее  обслуживание прерываний.

Самые младшие адреса памяти программ определены как векторы сброса и прерываний. Полный список векторов прерываний приведен в  таблице 2. Этот  список определяет  и приоритет  различных прерываний. Меньшие адреса соответствуют более  высокому уровню приоритета.  Самый высокий уровень у сброса, следующий приоритет у INT0 -  внешнего запроса  прерывания 0 и т.д.

Таблица 2. Сброс и векторы прерываний.

Номер вектора

Адрес

Источник

Описание прерывания

1

$000

RESET

Вывод сброса и сброс от сторо­жевого таймера

2

$001

INT0

Внешнее прерывание 0

3

$002

INT1

Внешнее прерывание 1

4

$003

TIMER1 CAPT1

Захват таймера/счетчика 1

5

$004

TIMER1 COMP1

Совпадение таймера/счетчика 1

6

$005

TIMER1 OVF1

Переполнение таймера/счетчика 1

7

$006

TIMER0,OVF0

Переполнение таймера/счетчика 0

8

$007

UART RX

Последовательный порт: прием закончен

9

$008

UART UDRE

Последовательный порт: регистр данных пуст

10

$009

UART TX

Последовательный порт: передача закончена

11

$00A

ANA_COMP

Аналоговый компаратор

Чаще всего используется следующая установка векторов прерываний в программе:

 Адрес  Метка        Код          Комментарий

 $000                 rjmp RESET      ; Обработка сброса

 $001                 rjmp EXT_INT0   ; Обработка IRQ0

 $002                 rjmp EXT_INT1   ; Обработка IRQ1

 $003                 rjmp TIM_CAPT1  ; Обработка захвата таймера 1

 $004                 rjmp TIM_COMP1  ; Обработка совпадения таймера 1

 $005                 rjmp TIM_OVF1    ; Обработка переполнения таймера 1

 $006                 rjmp TIM_OVF0   ; Обработка переполнения таймера 0

 $007                 rjmp UART_RXC   ; Обработка приема байта

 $008                 rjmp UART_DRE   ; Обработка освобождения UDR

 $009                 rjmp UART_TXC   ; Обработка передачи байта

 $00A                 rjmp ANA_COMP   ; Обработка аналогового компаратора

 $00B    MAIN:        <instr> xxx     ; Начало основной программы




Начало  Назад  Вперед