Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпт 2013.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2.12 Mб
Скачать

42.Режимы работы портов ввода-вывода, альтернативные функции. Система прерываний.

Все порты ввода-вывода (ПВВ) AVR-микроконтроллеров работают по принципу чтение-модификация-запись при использовании их в качестве портов универсального ввода-вывода. Это означает, что изменение направления ввода-вывода одной линии порта командами SBI и CBI будет происходит без ложных изменений направления ввода-вывода других линий порта. Данное распространяется также и на изменение логического уровня (если линия порта настроена на вывод) или на в ключение/отключение подтягивающих резисторов (если линия настроена на ввод).

Каждый выходной буфер имеет симметричную характеристику управления с высоким втекающим и вытекающим выходными токами. Выходной драйвер обладает нагрузочной способностью, которая позволяет непосредственно управлять светодиодными индикаторами.

Ко всем линиям портов может быть подключен индивидуальный выборочный подтягивающий к плюсу питания резистор, сопротивление которого не зависит от напряжения питания. На всех линиях ПВВ установлены защитные диоды, которые подключены к VCC и Общему (GND).

Альтернативные функции порта.Большинство выводов поддерживают альтернативные функции в дополнение к универсальному цифровому вводу-выводу. Управляющие сигналы могут быть отключены альтернативными функциями. Сигналы откл-ния могут присутствовать не на всех выводах, поэтому рисунок необходимо использовать как общее описание, применимое ко всем выводам портов семейства AVR-микроконтроллеров. Отключающие сигналы генерируются внутренне в модулях, поддерживающих альтернативные функции.

Система прерываний

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

Пример перечня векторов представлен в таблице.Прерывания с младшими адресами имеют больший уровень приоритета. RESET имеет наивысший уровень приоритета, следующим является INT0 - Запрос внешнего прерывания 0 и т.д. Микроконтроллеры ATmega содержат два специальных 8-разрядных регистра масок прерываний: регистр масок внешних прерываний и регистр масок прерываний по таймеру/счетчику. Кроме того, в регистрах управления периферией могут быть организованы и другие биты разрешения и биты масок.

При возникновении прерывания бит I разрешения глобального прерывания (Global Interrupt Enable) очищается и все прочие прерывания запрещаются. Пользовательское ПО, с тем, чтобы разрешить вложенные прерывания, может установить бит I внутри подпрограммы обработки прерывания.

Выход из подпрограммы обработки прерывания происходит по команде RETI, при этом бит I устанавливается в состояние 1 Когда счетчик команд указывает вектор подпрограммы обработки прерывания, соответствующий флаг, вызвавший прерывание, аппаратно очищается. Некоторые флаги прерываний можно очистить, записав в соответствующий бит очищаемого флага логическую единицу.

Vector No.

Program Address

Source

Interrupt Definition

1

$0000

RESET

Сброс по выводу и сторожевому таймеру

2

$0002

INT0

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

3

$0004

INT1

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

4

$0006

INT2

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

5

$0008

TIMER2 COMP

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

6

$000A

TIMER2 OVF

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

7

$000C

TIMER1 CAPT

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

8

$000E

TIMER1 COMPA

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

9

$0010

TIMER1 COMPB

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

10

$0012

TIMER1 OVF

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

11

$0014

TIMER0 COMP

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

12

$0016

TIMER0 OVF

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

13

$0018

SPI, STC

Завершение пересылки SPI

14

$001A

UART, RXC

Завершение приема UART

15

$001C

UART, UDRE

Регистр данных UART пуст

16

$001E

UART, TXC

Завершение передачи UART

17

$0020

ADC

Завершение ADC преобразования

18

$0022

EE READY

Готовность EEPROM (EEPROM Ready)

19

$0024

ANALOG COMP

Срабатывание аналогового компаратора

20

$0026

TWI

Двухпроводной последовательный интерфейс

21

$0028

SPM_RDY

Готовность памяти программ EEPROM

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]