ЖАНРЫ

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С

Пак Дэниэл Дж.

Шрифт:

1. Управляющая программа устанавливает режим работы детектора событий канала 2. Должен быть выбран режим мониторинга нарастающего фронта входного сигнала. Для этого следует установить биты EDG2B:EDG2A в регистрах TCTL3:TCTL4 в состояние 01.

2. Управляющая программа контролирует состояние триггера события C2F.

3. Если триггер C2F установился в 1, то контролируемый сигнал на линии PT2 изменился с 0 на 1. В момент изменения код счетчика временной базы был автоматически переписан в регистр защелку канала 2. Теперь этот код доступен для чтения из регистра данных TC2.

4. Управляющая программа обнаруживает, что триггер C2F установился. Тогда программа считывает двухбайтовый код из регистра данных канала TC2 и записывает его в двухбайтовую беззнаковую переменную rising_edge.

5. Управляющая программа сбрасывает триггер события C2F посредством записи в бит C2F единицы.

6. Управляющая программа изменяет режим работы детектора событий канала 2. Должен быть выбран режим мониторинга отрицательного фронта входного сигнала. Для этого следует установить биты EDG2B:EDG2A в регистрах TCTL3:TCTL4 в состояние 10.

7. Управляющая программа контролирует состояние триггера события C2F.

8. Если триггер C2F установился в 1, то сигнал на линии PT2 изменился с 1 на 0. В момент изменения код счетчика временной базы был опять автоматически переписан в регистр защелку канала 2.

9. Управляющая программа обнаруживает установленный триггер C2F, считывает двухбайтовый код из регистра данных канала TC2 и записывает его в двухбайтовую беззнаковую переменную falling_edge.

10. Управляющая программа сбрасывает триггер события C2F посредством записи в бит C2F единицы.

11. Управляющая программа вычисляет число периодов частоты тактирования счетчика временной базы между положительным и отрицательным фронтами исследуемого сигнала: TIME = falling_edge – rising_edge. Это число и есть искомая длительность импульса положительной полярности сигнала на входе PT2, выраженная числом периодов частоты тактирования счетчика временной базы.

12. При необходимости длительность импульса может быть представлена в общепринятых единицах измерения времени. Для этого управляющая программа должна выполнить операцию умножения числа TIME на длительность единицы измерения времени таймера, т.е. на длительность периода частоты тактирования счетчика временной базы: tIZM = TIMEx1/fBASE.

Регистры специальных функций, связанные с подсистемой входного захвата, мы обсудим позже, после рассмотрения подсистемы выходного сравнения.

Вопросы для самопроверки

1. Какие изменения необходимо внести в рассмотренную выше последовательность действий, чтобы произвести измерение длительности нулевого состояния сигнала на входе PT2?

Ответ: В п.1. следует изменить инициализацию режима работы детектора событий. Должен быть выбран режим мониторинга отрицательного фронта входного сигнала. Также следует внести изменение в п. 6, в котором для детектора событий следует выбрать режим мониторинга нарастающего фронта входного сигнала.

2. Какие изменения необходимо внести для измерения периода повторяемости импульсного сигнала на входе PT2?

Ответ: Рассматриваем изменения исходной последовательности действий, которая приведена в предыдущем параграфе. Пункт 6 последовательности необходимо исключить. Тогда триггер события C2F будет в обоих случаях устанавливаться по положительному фронту исследуемого сигнала. Следовательно, в п.п. 11 и 12 будет вычисляться интервал времени между соседними положительным фронтами сигнала, т.е. период повторяемости этого сигнала.

3. Какие дополнительные изменения по отношению к вопросу 2 необходимо внести для измерения периода повторяемости импульсного сигнала, длительность которого превышает период переполнения счетчика временной базы?

Ответ: Необходимо организовать программный счетчик и вести наблюдение не только за состоянием триггера события канала входного захвата, но и триггера переполнения счетчика временной базы. Если триггер TOF установился. То следует программно инкрементировать программный счетчик. Также следует изменить формулу для подсчета длительности периода.

Режим выходного сравнения

Подсистема выходного сравнения OC используемся в микропроцессорной технике для генерации на выводах МК импульсных сигналов с заданными временными характеристиками. Например, средствами подсистемы выходного сравнения может быть сформирован одиночный импульс предварительно вычисленной длительности, или импульсная последовательность определенной частоты с регулируемым по результатам расчетов в МК коэффициентом заполнения. Структура аппаратных средств подсистемы выходного сравнения OC, которая образуется после конфигурирования универсального канала модуля таймера на режим сравнения, представлена на рис. 4.36.

Рис. 4.36. Структура одного канала таймера в режиме выходного сравнения и регистры управления каналом TCTL1 и TCTL2

Цифровой компаратор подсистемы выходного сравнения непрерывно сравнивает код счетчика временной базы с 16 разрядным кодом в регистре данных канала TCn (n — номер канала). Момент равенства кодов в микропроцессорной технике называют событием выходного сравнения. Если цифровой компаратор определил равенство кодов, то аппаратные средства канала выходного сравнения автоматически совершают следующие действия:

1. Устанавливается флаг события канала CnF. Обратите внимание, события входного захвата и выходного сравнения отмечаются одним и тем же флагом. Это флаг события канала CnF. Смысловое значение флага (IC или OC) определяется ранее выбранным в процессе инициализации режимом работы канала. Флаг CnF «сообщает» основной программе о том, что событие выходного сравнения произошло, и в регистр данных канала TCn следует записать новое значение кода для сравнения.

2. Если прерывания по флагу события CnF разрешены (бит CnI установлен), то генерируется запрос на прерывание.

3. Формирователь уровня генерирует на выводе канала IOSn предварительно заданный логический уровень. Формирователь уровня в процессе инициализации может быть программно настроен на один из четырех режимов работы:

• Установка вывода в 1;

• Установка вывода в 0;

• Инвертирование уровня сигнала на выводе;

• Соответствующий вывод МК не подключен к каналу выходного сравнения и является выводом порта T.

OMn: OLn Режим формирователя уровня
00 Выход формирователя не соединен с выводом IOSn
01 Инвертирует сигнал на выходе
10 Устанавливает выход в 0
11 Устанавливает выход в 1
Поделиться с друзьями: