Микроконтроллер AT90S2313

         

ТАЙМЕР/СЧЕТЧИК В РЕЖИМЕ ШИМ


При  выборе  режима  широтно-импульсной  модуляции  (ШИМ),   таймер/счетчик 1 и регистр совпадения OCR1A формируют 8, 9 или 10-разрядный непрерывный свободный от  "дрожания" и правильный по  фазе сигнал, выводимый на вывод PB3(OC1). Таймер/счетчик 1 работает как реверсивный счетчик считающий от 0 до конечного значения (см. табл.10). При достижении конечного значения счетчик  начинает считать в обратную  сторону до нуля, после чего рабочий цикл повторяется. Когда значение  счетчика совпадает  с  8,  9  или  10-ю  младшими  битами регистра OCR1A, вывод PD3(OC1) устанавливается или сбрасывается в соответствии с установками бит COM1A1 и COM1A0 в регистре TCCR1 (см. табл.11).

Таблица 10. Конечное значение таймера и частота ШИМ.

Разрешение ШИМ

Конечное значение таймера

Частота ШИМ

8 бит



$00FF (255)

Ftc1/510

9 бит

$01FF (511)

Ftc1/1022

10 бит

$03FF (1023)

Ftc1/2046

В режиме ШИМ, при записи в регистр OCR1A, 10 младших бит  передаются во временный регистр и переписываются только при достижении  таймером/счетчиком конечного значения. При этом устраняется появление несимметричных импульсов (дрожания),  которые неизбежны при  асинхронной записи OCR1A.

Таблица 11. Установка режима совпадения при работе ШИМ.

COM1A1

COM1A1

Влияние на вывод OC1

0

0

Не подключен

0

1

Не подключен

1

0

Очищается при совпадении, для возрастания  счетчика и сбрасывается для уменьшения (неинвертирующий ШИМ)

1

1

Очищается при совпадении, для уменьшения счетчика и сбрасывается для возрастания (инвертирующий ШИМ)

Если OCR1A содержит значение  $0000 или конечное значение  (TOP), вывод OC1 остается в  том состоянии, которое определяется  установками COM1A1 и COM1A0. Это показано в табл. 12.

Таблица 12. Выход ШИМ для OCR=$0000 или TOP

COM1A1

COM1A1

OCR1A

вывод OC1

1

0

$0000

Низкий

1

0

TOP

Высокий

1

1

$0000

Высокий

1

1

TOP

Низкий

В режиме ШИМ флаг  переполнения таймера 1 (TOV1)  устанавливается, когда счетчик изменяет направление счета в точке $0000. Прерывание  по переполнению  таймера  1  работает  как  при  нормальном режиме работы таймера/счетчика, т.е.  оно выполняется,  если установлен  флаг TOV1 и разрешены соответствующие прерывания. То же самое касается флага  совпадения и прерывания по совпадению.



Содержание раздела