6.3. События
Как уже говорилось, под событием понимается сигнализация об изменении состояния внутри УВВ. Существует два основных типа событий: сигнальные события и информационные события. Сигнальные события указывают лишь на произошедшее изменение состояния, в то время как информационные события содержат дополнительные сведения о событии.
УВВ, в котором возникло событие, называется генератором события. Каждый из УВВ может поддерживать несколько источников событий, например, у таймера-счетчика это события совпадения в блоке сравнения и переполнения таймера. УВВ, которое использует событие, называется получателем события, а действие, которое инициирует событие, называется действием события.
Рисунок 6.2. Пример источника, генератора, получателя и действия события
События можно генерировать вручную путем записи в регистры STROBE и DATA.
6.3.1. Сигнальные события
Сигнальные события являются наиболее простым типом событий. Сигнальное событие не содержит какой-либо информации относительно изменений в УВВ. Большинство УВВ может только генерировать и использовать сигнальные события. Далее по тексту, если не указано иного, любое упоминание слова 'событие' нужно понимать именно как сигнальное событие.
6.3.2. Информационные события
Информационные события отличаются от сигнальных тем, что они несут дополнительную информацию получателю события, который после ее дешифрации определяет, какие действия необходимо выполнять.
Сеть маршрутизации событий позволяет передать любое событие любому получателю. Получатели событий, которые рассчитаны на использование сигнальных событий, обладают ограниченными возможностями дешифрации и не могут в полной мере использовать полученные данные.
В таблице 6.1 приведены данные о том, как получатели событий могут дешифрировать информационные события.
Получатели событий, которые поддерживают информационные события, будут поддерживать и сигнальные события. Подробности по конфигурации и использованию событий см. в документации на МК в разделах посвященных описанию каждого УВВ.
6.3.3. Ручная генерация событий
События можно генерировать вручную путем записи в регистры DATA и STROBE. Это можно выполнить либо программно, либо с помощью встроенной отладочной системы. Первой необходимо выполнить запись в регистр DATA, поскольку запись в регистр STROBE инициирует генерацию события. Каждый бит регистров DATA и STROBE соответствует определенному каналу событий (бит n соответствует каналу событий n). Записью нескольких бит за один подход можно инициировать одновременную генерацию нескольких событий.
Сгенерированные вручную события длятся один цикл синхронизации и в течение этого интервала времени перекрывают прочие события. При ручной генерации событий, те каналы, в которых нет введенных событий, будут пропускать через себя прочие события.
В таблице 6.1. представлены данные о том, как сгенерировать вручную различные события и как они дешифрируются.
Таблица 6.1. Генерируемые вручную события и дешифрация событий
STROBE |
DATA |
Получатель информационного события |
Получатель сигнального события |
0 |
0 |
Нет события |
Нет события |
0 |
1 |
Информационное событие 01 |
Нет события |
1 |
0 |
Информационное событие 02 |
Сигнальное событие |
1 |
1 |
Информационное событие 03 |
Сигнальное событие |
|