Система прерываний микроконтроллера. (Лекция 5)

Содержание

Слайд 2

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

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

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

Слайд 3

Система прерываний микроконтроллера Рис. 3 – Начальный код для микроконтроллера AVR tiny2313

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

Рис. 3 – Начальный код для микроконтроллера AVR tiny2313

Слайд 4

Внешние прерывания Рис. 4 – Регистр управления микроконтроллером Бит 7 —

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

Рис. 4 – Регистр управления микроконтроллером

Бит 7 — PUD: Отключение

резисторов внутренней нагрузки. Если значение этого бита равно единице, нагрузочные резисторы всех разрядов всех портов отключены, даже если биты DDxn и PORTxn какого-либо регистра сконфигурированы на включение нагрузочного резистора.
Биты 6, 4 — SM1...0: Первый и второй разряды выбора режимов сна. Эти биты позволяют выбрать один из четырех режимов сна, как показано в таблице А.3.
Бит 5 — SE: Разрешение спящих режимов. Бит SE должен быть установлен в единицу для того, чтобы по команде SLEEP микроконтроллер перешел в спящий режим. Чтобы избежать случайного перехода в спящий режим, рекомендуется устанавливать бит SE в единичное состояние непосредственно перед вызовом команды SLEEP и сбрасывать его сразу после пробуждения.
Бит 3, 2— ISC11, ISC10: Биты выбора режима вызова внешнего прерывания INT1. Внешнее прерывание 1 вызывается при помощи внешнего входа INT1 в том случае, если установлен флаг I регистра SREG, а также установлен соответствующий бит регистра маски. Возможные варианты вызова прерывания INT1 приведены в таблице А.5.
Бит 1,0 — ISC01, ISC00: Биты выбора режима вызова внешнего прерывания INT0. Внешнее прерывание 0 вызывается при помощи внешнего входа INT0 в том случае, если установлен флаг I регистра SREG, а также установлен соответствующий бит регистра маски. Возможные варианты вызова прерывания INT0 приведены в таблице А.6.

Источники внешних прерываний:
PD2 – прерывание INT0;
PD3 – прерывание INT1
Все вывода Port B, объединенные по ИЛИ – прерывание PCINT

Слайд 5

Внешние прерывания Рис. 5 – Конфигурирование режима внешних прерываний INT0 и

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

Рис. 5 – Конфигурирование режима внешних прерываний INT0 и INT1

Прерывание

PCINT формируется при изменении уровня на любом выбранном выводе PORT B
Слайд 6

Регистры для управления внешними прерываниями Рис. 6 – Регистр маски внешних

Регистры для управления внешними прерываниями

Рис. 6 – Регистр маски внешних прерываний

GIMSK

Бит 7— INT1: Разрешение внешнего прерывания INT1. Внешнее прерывание INT1 разрешается, когда бит INT1 установлен в единицу, а также установлен флаг I регистра SREG,. Условия возникновения прерывания определяются битами ISC11 и ISO0 регистра MCUCR. Прерывание будет вызвано даже в том случае, если контакт INT1 сконфигурирован как выход. При вызове прерывания выполняется процедура, определяемая соответствующим вектором прерывания.
Бит 6— INT0: Разрешение внешнего прерывания INT0. Когда бит INT0 установлен в единицу, а также установлен флаг I регистра SREG, внешнее прерывание INT0 разрешается. Условия возникновения прерывания определяются битами ISC01 и ISC00 регистра MCUCR. Прерывание будет вызвано даже в том случае, если контакт INT0 сконфигурирован как выход. При вызове прерывания выполняется процедура, определяемая соответствующим вектором прерывания.
Бит 5 — PCIE: Разрешение прерывания по изменению состояния выводов. Если бит PCIE установлен в единицу, и при этом установлен флаг I регистра SREG, прерывание по изменению состояния любого контакта разрешено. Запрос на прерывание по изменению состояния на любом из контактов вызывает процедуру обработки прерывания, определяемую соответствующим вектором прерывания. Какие именно контакты будут вызвать прерывание, определяется индивидуально, установкой одного из битов PCINT7 – 0 регистра PCMSK.

Слайд 7

Регистры для управления внешними прерываниями Рис. 7 – Регистр флагов внешних

Регистры для управления внешними прерываниями

Рис. 7 – Регистр флагов внешних прерываний

EIFR

Бит 7 — INTF1: Флаг внешнего прерывания 1. Когда изменение логического уровня сигнала на входе INT1 вызывает запрос на прерывание, устанавливается флаг INTF1. Если при этом флаг I регистра SREG и бит INT1 регистра GIMSK установлены в единицу, микроконтроллер перейдет к выполнению процедуры обработки прерывания по соответствующему вектору.
При запуске процедуры обработки прерывания флаг автоматически очищается. Флаг может быть также очищен программно, путем записи в него логической единицы. Если прерывание INT1 сконфигурировано как прерывание по уровню, данный флаг всегда очищен.
Бит 6 — INTF0: Флаг внешнего прерывания 0. Когда изменение логического уровня сигнала на входе INT0 вызывает запрос на прерывание, устанавливается флаг INTF0. Если при этом флаг I регистра SREG и бит INT0 регистра GIMSK установлены в единицу, микроконтроллер перейдет к выполнению процедуры обработки прерывания по соответствующему вектору.
При запуске процедуры обработки прерывания флаг автоматически очищается. Флаг может быть также очищен программно, путем записи в него логической единицы. Если прерывание INT0 сконфигурировано как прерывание по уровню, данный флаг всегда очищен.
Бит 5 — PCIF: Флаг прерывания по изменению состояния оного из выводов. Изменение логического уровня на одном из входов PCINT7 – 0 вызывает генерацию запроса на прерывание, благодаря чему устанавливается флаг PCIF. Если при этом флаг 1 регистра SREG и бит PCIE регистра GIMSK установлены в единицу, микроконтроллер перейдет к выполнению процедуры обработки прерывания по соответствующему вектору.
При запуске процедуры обработки прерывания флаг автоматически очищается. Флаг может быть также очищен программно, путем записи в него логической единицы.

Слайд 8

Регистры для управления внешними прерываниями Рис. 8 – Регистр маски вывода

Регистры для управления внешними прерываниями

Рис. 8 – Регистр маски вывода выводов

Port B для прерывания PCINT

Бит 7..0 — PCINT7..0: Маска разрешения входов. Каждый из битов PCINT7 – 0 определяет, разрешается ли прерывание по изменению уровня на соответствующем входе. Если бит и флаг PCIE регистра GIMSK установлены в единицу, прерывание по изменению сигнала на соответствующем входе разрешается. Если бит сброшен, то прерывание по изменению сигнала на соответствующем входе запрещено.

Слайд 9

Порты ввода/вывода Типы портов в микроконтроллерах: только вход; только выход; двунаправленный

Порты ввода/вывода

Типы портов в микроконтроллерах:
только вход;
только выход;
двунаправленный вывод;
вывод с альтернативными функциями

Рис.

9 – Эквивалентная схема одного вывода микроконтроллера AVR

Регистры для управления портами микроконтроллера:
DDRx – регистр направления передачи данных порта;
PORTx – регистр данных порта;
PINx – регистр значения порта

Слайд 10

Порты ввода/вывода Рис. 10 – Функциональная схема вывода порта без учета альтернативных функций

Порты ввода/вывода

Рис. 10 – Функциональная схема вывода порта без учета альтернативных

функций