Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Шрифт:
7. Управляющая программа контролирует состояние триггера события C2F.
8. Если триггер C2F установился в 1, то сигнал на линии PT2 изменился с 1 на 0. В момент изменения код счетчика временной базы был опять автоматически переписан в регистр защелку канала 2.
9. Управляющая программа обнаруживает установленный триггер C2F, считывает двухбайтовый код из регистра данных канала TC2 и записывает его в двухбайтовую беззнаковую переменную falling_edge.
10. Управляющая программа сбрасывает триггер события C2F посредством записи в бит C2F единицы.
11. Управляющая программа вычисляет число периодов частоты тактирования
12. При необходимости длительность импульса может быть представлена в общепринятых единицах измерения времени. Для этого управляющая программа должна выполнить операцию умножения числа TIME на длительность единицы измерения времени таймера, т.е. на длительность периода частоты тактирования счетчика временной базы: tIZM = TIMEx1/fBASE.
Регистры специальных функций, связанные с подсистемой входного захвата, мы обсудим позже, после рассмотрения подсистемы выходного сравнения.
1. Какие изменения необходимо внести в рассмотренную выше последовательность действий, чтобы произвести измерение длительности нулевого состояния сигнала на входе PT2?
Ответ: В п.1. следует изменить инициализацию режима работы детектора событий. Должен быть выбран режим мониторинга отрицательного фронта входного сигнала. Также следует внести изменение в п. 6, в котором для детектора событий следует выбрать режим мониторинга нарастающего фронта входного сигнала.
2. Какие изменения необходимо внести для измерения периода повторяемости импульсного сигнала на входе PT2?
Ответ: Рассматриваем изменения исходной последовательности действий, которая приведена в предыдущем параграфе. Пункт 6 последовательности необходимо исключить. Тогда триггер события C2F будет в обоих случаях устанавливаться по положительному фронту исследуемого сигнала. Следовательно, в п.п. 11 и 12 будет вычисляться интервал времени между соседними положительным фронтами сигнала, т.е. период повторяемости этого сигнала.
3. Какие дополнительные изменения по отношению к вопросу 2 необходимо внести для измерения периода повторяемости импульсного сигнала, длительность которого превышает период переполнения счетчика временной базы?
Ответ: Необходимо организовать программный счетчик и вести наблюдение не только за состоянием триггера события канала входного захвата, но и триггера переполнения счетчика временной базы. Если триггер TOF установился. То следует программно инкрементировать программный счетчик. Также следует изменить формулу для подсчета длительности периода.
Подсистема выходного сравнения OC используемся в микропроцессорной технике для генерации на выводах МК импульсных сигналов с заданными временными характеристиками. Например, средствами подсистемы выходного сравнения может быть сформирован одиночный импульс предварительно вычисленной длительности, или импульсная последовательность определенной частоты с регулируемым по результатам
Рис. 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 |
Рис. 4.37. Выбор режима работы формирователя уровня
Для настройки формирователя уровня каждого канала на один из трех перечисленных режимов работы используются биты OMn:OLn в регистрах TCTL1 ($0088) и TCTL2 ($0089). Формат этих регистров представлен на рис. 4.36. Таблица рис. 4.37 устанавливает соответствие между режимом работы формирователя уровня и кодом инициализации в разрядах OMn:OLn.
Рассмотрим последовательность действий, которая должна быть реализована для генерации средствами подсистемы выходного сравнения «отрицательного» импульса заданной длительности. Под «отрицательным» импульсом мы будем понимать низкий логический уровень сигнала с последующим его изменением на высокий логический уровень.