Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Шрифт:
Рис. 4.47. Временная диаграмма, поясняющая принцип действия модуля меток реального времени, и регистры управления модулем
Рис. 4.48. Блок-схема алгоритма часов реального времени
Регистр флагов RTIFLG (рис. 4.47) содержит всего один флаг RTIF. Этот флаг устанавливается, когда модуль закончил отсчет очередного периода RTI.
Счетчик подсистемы меток реального времени тактируется импульсной последовательностью с частотой fBUS.
Ниже приведен исходный текст программы realtime.c для реализации часов реального времени на основе отсчетов модуля RTI с интервалами 8,196 мс. В подпрограмме прерывания программный счетчик накапливает 122 отсчета RTI (рис.4.48), которые составляют временной интервал длительностью 1 с. По прошествии каждой секунды инкрементируется программный счетчик sec_ctr, по прошествии каждой минуты — счетчик mins_ctr и т.д. вплоть до счетчика дней.
При желании функции программы можно расширить, введя подсчет дня недели, месяца и года.
4.16. Модуль таймера ECT в составе МК МC68HC12BE32 и HCS12
Все микроконтроллеры семейства HCS12 и всего одна модель MC68HC12BE32 семейства 68HC12 оснащены более совершенным модулем таймера ECT (Enhanced Capture Timer). Модуль таймера EST унаследовал основные технические решения от своего предшественника — модуля таймера TIM. Поэтому, так же как в модуле TIM, основу таймера EST составляют 16-разрядный счетчик временной базы и восемь универсальных каналов захвата/сравнения.
Однако в модуле EST четыре канала из восьми в режиме входного захвата обладают дополнительным регистром. Такое решение позволяет в режиме входного захвата зафиксировать два момента изменения сигнала на входе канала прежде, чем будет установлен триггер события в канале CnF. Рассматриваемые каналы называют буферированными, они могут работать как в режиме временного хранения, так и в режиме очереди. Четыре оставшихся канала называют небуферированными. Правила функционирования этих каналов в режиме входного захвата полностью соответствуют аналогичным для модуля TIM. Полный набор функций каналов захвата/сравнения модуля таймера EST приведен на рис. 4.49.
Рис. 4.49. Усовершенствованный модуль таймера ECT
Второе отличие модуля EST от модуля TIM состоит в том, что модуль EST имеет в своем составе четыре 8-разрядных счетчика события (PACN3…PACN0). Эти счетчики могут быть объединены парами для получения двух 16-разрядных счетчиков событий: (PACN3:PACN2) и (PACN1:PACN0).
Обратимся далее к более подробному рассмотрению дополнительных режимов работы модуля EST.