2.5 Таймер/счетчик типа С
Таймер/счетчик типа С входит в состав периферийных устройств микроконтроллеров типа 8535 и m163 (Т/С2) и типа m103 (Т/СО). Он формирует запрос прерывания Т/СХ OVF при переполнении восьмиразрядного базового счетчика TCNTX, может выполнять функцию сравнения/PWM и работать в режиме счета реального времени. В структуру таймера/счетчика типа С входят все элементы таймера/счетчика типа В и, кроме того, регистр ASSR, мультиплексор М и внутренний генератор G. Дополнительные элементы изображены на рисунке 2.6.
Рисунок 2.6 – Структурная схема таймера счетчика типа C
В качестве исходного сигнала для работы базового счетчика TCNT 0 может использоваться тактовый сигнал микроконтроллера СК или сигнал TOSC1 из дополнительного внутреннего генератора G, к которому через выводы TOSC1 и TOSC2 подключен кварцевый резонатор КР2.
При частоте резонатора 32768 Гц ("часовой" кварц) параметры процессов в таймере/счетчике с высокой точностью привязаны к единице измерения реального времени – секунде.
При нулевом состоянии разряда AS0 регистра ASSR используется тактовый сигнал СК, при единичном состоянии – сигнал генератора G (режим реального времени). Выбранный сигнал РСК0 с выхода мультиплексора М поступает в пересчетную схему ПС, в котором выполняется деление частоты на 8, 32, 64, 128, 256 и 1024.
Сигналы с шести выходов пересчетной схемы и сигнал с выхода мультиплексора поступают в схему управления СУ1. Выбор сигнала для передачи на счетный вход базового счетчика определяется комбинацией состояний разрядов CS00, CS01 и CS02 регистра управления TCCR0 в соответствии с таблицей 2.4
Таблица 2.4 – Комбинации состояний разрядов CS00, CS01 и CS02 регистра управления TCCR0
CS02 | CS01 | CS00 | Сигнал |
0 0 0 0 1 1 1 1 | 0 0 1 1 0 0 1 1 | 0 1 0 1 0 1 0 1 | нет РСК0 РСК0/8 РСК0/32 РСК0/64 РСК0/128 РСК0/256 РСК0/1024 |
При работе в режиме реального времени (AS0 = 1) процесс счета и базовом счетчике привязан к сигналу TOSC1, а запись в регистры TCCR0 и OCR0 и в счетчик TCNT0 – к сигналу СК. Для исключения конфликтных ситуаций в счетчике TCNT0 в режиме реального времени используются регистры временного хранения. При записи кода (по команде OUT) байт принимается в соответствующий регистр временного хранения, при этом устанавливается в единичное состояние соответствующий разряд регистра ASSR – TCN0UB при записи в счетчик TCNT0, OCR0UB при записи в регистр OCR0, TCR0UB при записи в регистр TCCR0. Перепись байта из регистра временного хранения в основной регистр или счетчик привязана к сигналу TOSC1, при этом соответствующий разряд регистра ASSR сбрасывается в нулевое состояние. Очередная запись в регистр или счетчик по команде OUT может производиться при нулевом состоянии соответствующего разряда регистра ASSR.
У микроконтроллеров типа 8535 и m163 для подключения кварцевого резонатора КР2 используются выводы порта РС6 и РС7, а у микро контроллеров типа m10З – специальные выводы корпуса.
В таймере/счетчике типа С в микроконтроллере типа m163 (X = 2) в регистре TCCR2 имеется дополнительный разряд FOC2 и в регистре SFIOR – дополнительный разряд PSD2.
В режиме сравнения при установке в единичное состояние разряда FOC2 сигнал на выходе ОС2 принимает требуемое значение немедленно, не дожидаясь совпадения сравниваемых кодов. При этом запрос прерывания Т/С2 СОМР не формируется и базовый счетчик не сбрасывается. Сброс разряда FOC2 в нулевое состояние выполняется аппаратно. В режиме PWM разряд FOC2 не используется.
При установке в единичное состояние разряда PSR2 сбрасывается в исходное (нулевое) состояние пересчетная схема ПС.
Сброс разряда PSR2 в нулевое состояние выполняется аппаратно [2].
0 комментариев