Работа периферийных устройств

Таблица 25

Устройство

Запрос прерывания

MASK

FLAG

CPU, WDT

RESET

   

Внешние

INT0

INT1

INT0/GIMSK

INT1/GIMSK <

/td>

INTF0/GIFR

INTF1/GIFR

INT0 - INT3

INT4 - INT7

INT0 - INT3/EIMSK

INT4 - INT7/EIMSK

INTF4 - INTF7/EIFR

I/O PINS

LLI PINS

PCIE/GIMSK

LLIE/ICR

PCIF/GIFR

T/C2

T/C2 COMP

T/C2 OVF

OCIE2/TIMSK

TOIE2/TIMSK

OCF2/TIFR

TOV2/TIFR

T/C1

T/C1 CAPT

T/C1 COMPA

T/C1 COMP B

T/C1 OVF

TICIE1/TIMSK

OCIE1A/ TIMSK*

OCIE1B/ TIMSK

TOIE1/ TIMSK

ICF1/TIFR

OCF1A/TIFR*

OCF1B/TIFR

TOV1/TIFR

T/C0

T/C0 COMP

T/C0 OVF

OCIE0/TIMSK

TOIE0/TIMSK

OCF0/TIFR

TOV0/TIFR

SPI

SPI STC

SPIE/SPCR

SPIF/SPSR

UART

UART RXC

UART UDRE

UART TXC

RXCIE/UCR**

UDRIE/UCR  

RXC/USR**

UDRE/USR

ADC

ADC CC

ADIE/ADCSR

ADIF/ADCSR

EEPROM

EE RDY

EERIE/EECR

 

AC

ANA COMP

ACIE/ACSR

ACI/ACSR

TWSI

TWSI

TWIE/TWCR

TWINT/TWCR

* - у МК типа 4433 OCIE1 и OCF1

* - у МК типа 163 UCR = UCSRB USR = UCSRA

При поступлении запроса блок прерываний организует аппаратный безусловный переход к выполнению команды, адрес которой (вектор прерывания) однозначно связан с именем запроса прерывания. По этому адресу в микроконтроллерах серий ATtiny и АТ90 должна быть записана команда безусловного перехода с мнемокодом RJMP k (№ 85), машинный код который имеет формат "слово", а в микроконтроллерах серии ATmega может быть записана команда безусловного перехода с мнемокодом JMP, и машинный код которой имеет формат "два слова". По этой команде выполняется программный безусловный переход к первой команде соответствующей прерывающей программы, которая может быть расположена в любом месте в Flash ROM.

При одновременном поступлении в блок прерываний нескольких запросов в блоке выделяется запрос с наиболее высоким приоритетом среди всех поступивших и выполняется переход по адресу, соответствующему этому запросу.

В табл.26 и 27 указаны в шестнадцатеричном коде адреса (векторы прерывания), по которым совершается аппаратный переход у микроконтроллеров разных типов. Высший приоритет имеет запрос прерывания RESET. Приоритет других запросов убывает в порядке увеличения адреса, по которому совершается переход. У микроконтроллеров разных типов запросам прерывания с одинаковым именем соответствуют разные векторы перехода.

Таблица 26

Запрос прерывания

   

Тип

MK

   

t11

t12

t15

2323

2343

1200

RESET

000

000

000

000

000

000

INTO

001

001

001

001

001

001

I/O PINS

002

002

002

     

T/C1 COMP

   

003

     

T/C1 OVF

   

004

     

T/CO OVF

003

003

005

002

002

002

EERDY

 

004

006

     

ANA COMP

004

005

007

   

003

ADCCC

   

008

     

При переходе к выполнению прерывающей программы разряд 1 в регистре SREG аппаратно сбрасывается в нулевое состояние и прерывания по всем запросам оказываются запрещенными. Разряд I устанавливается в единичное состояние при выполнении команды возврата из прерывающей программы с мнемокодом RETI (№ 90). Разряд I может быть установлен в единичное состояние программно по команде SEI в прерывающей программе. Программа, которая выполняется при пуске микроконтроллера и по запросу RESET, не содержит команды RETI и для выполнения прерываний должна содержать команду SEI.

Прерывание по запросу RESET выполняется вне зависимости от состояния разряда I в регистре SREG. Опрос состояния входов блока прерываний выполняется в каждом такте. При обнаружении запроса код из счетчика команд заносится в стек, на что затрачивается 2 такта, и выполняется безусловный переход по команде с мнемокодом RJMP к (2 такта) или JMP k (3 такта). Если при обнаружении запроса прерывания процессор не закончил выполнение текущей многотактовой команды, до перехода к прерывающей программе завершается выполнение этой команды.

Страница:  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы