Генерация событий портом ввода-вывода 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Генерация событий портом ввода-вывода



Порт ввода-вывода может генерировать событие при изменении состояния его линий. Путем настройки функций контроля можно задать, при каких изменениях на линии будут генерироваться события. Для генерации событий должна быть активной синхронизация УВВ, т.к. асинхронная генерация событий не поддерживается. Для генерации события по обнаружению фронта необходима выборка одного изменившегося значения линии в/в в течение цикла синхронизации УВВ. Генерация события по обнаружению низкого уровня происходит вслед за изменением уровня на контролируемой линии.

Изменение состояния линии с единичного на нулевое (падающий фронт) не генерирует событие, а с нулевого на единичное (нарастающий фронт) - генерирует. При необходимости генерации событий по падающему фронту, необходимо активизировать функцию инвертированного ввода-вывода. Низкий уровень на линии не генерирует события, а высокий - непрерывно генерирует события.

Альтернативные функции портов

Большинство линий портов, помимо функции линии в/в общего назначения, поддерживают альтернативные функции. Разрешение альтернативной функции может привести к перекрытию обычной функции линии порта или ее состояния. Так происходит, когда разрешается работа УВВ, который использует выводы МК или который настроен на использование выводов МК. О том, использует ли УВВ выводы МК и перекрывают ли состояние линий в/в общего назначения см. в разделах, посвященному описанию интересующего УВВ.

Перекрывающие сигналы и связанная с ними логика показаны на рисунке 13.10 (выделено заливкой серым цветом). Данные сигналы недоступны из программы и являются внутренними сигналами, которые соединяют перекрывающее УВВ и линию порта.

Рисунок 13.10. Перекрывающие сигналы и связанная с ними логика

Управление скоростью фронтов

Функцию управления скоростью фронтов можно раздельно активизировать на каждой из линий в/в. После ее активизации время нарастания/спада фронтов увеличивается на 50-150% в зависимости от напряжения, температуры и нагрузки. Характеристики ограничителя скорости фронтов приводятся в документации на МК.

Вывод синхронизации и событий

Микроконтроллеры поддерживают возможность вывода на линию ПВВ, как сигнала синхронизации УВВ, так сигнала события из канала события 0. Линия порта для вывода задается программно. Если событие возникает в канале события 0, то его можно будет наблюдать на линии порта до тех пор, пока это событие не исчезнет. Обычно это всего лишь один цикл синхронизации УВВ.

Мультипортовая конфигурация

С помощью регистра MPCMASK можно задать маску для одновременной и одинаковой конфигурации нескольких линий в/в. Каждый установленный бит n в регистре MPCMASK будет указывать на необходимость записи одинаковых значений во все соответствующие конфигурационные регистры PINnCTRL. Дальнейшая запись в любой из заданных в маске регистров PINnCTRL будет применена ко всем остальным регистрам PINnCTRL одновременно. По завершении записи конфигурационных регистров, содержимое регистра MPCMASK автоматически очищается.

Виртуальные регистры

Регистры виртуальных портов предназначены для отображения регистров портов из пространства расширенной памяти ввода-вывода в пространстве памяти ввода-вывода. После связывания физического порта с виртуальным, запись в виртуальный регистр будет идентична записи в регистр физического порта. Благодаря такому связыванию, регистры портов, которые обычно находятся в пространстве расширенной памяти ввода-вывода, будут доступны с помощью инструкций битовой обработки и инструкций IN/OUT. Всего имеется четыре виртуальных порта. Таким образом, в памяти ввода-вывода могут отображаться не более четырех портов одновременно. Отображению подлежат следующие регистры: IN, OUT, DIR и INTFLAGS.

Описание регистров портов

DIR - регистр направления

Бит                  
+0x00
DIR[7:0]
DIR
Чтение/запись Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

170. Биты 7:0 - DIR[7:0]: направление линий в/в

С помощью данного регистра можно настроить направление каждой линии в/в порта. Если бит DIRn равен единице, то линия n работает как выход. Если же бит DIRn равен нулю, то линия n будет работать как вход.



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 263; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.84.90 (0.007 с.)