Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы МП.New.doc
Скачиваний:
27
Добавлен:
23.11.2019
Размер:
1.08 Mб
Скачать

1.5.1. Управление тактовым сигналом

Формирование тактового сигнала таймера/счетчика clkT0 (clkT2) осуществляется блоком предделителя. В качестве тактового сигнала clkT0 (clkT2) таймера/счетчика T2, не имеющего асинхронного режима, может использоваться:

• системный тактовый сигнал (clkT0(Т2) = clkI/0);

• масштабированный системный тактовый сигнал (clkT0(T2) = clkI/0/n;

• внешний сигнал, поступающий на вход ТО (Т2) микроконтроллера (с1kТ0(Т2) = с1kЕхт).

Тактовый сигнал таймеров/счетчиков с асинхронным режимом может формироваться либо из системного тактового сигнала clkI/0 (clkT0 (Т2) = clkI/0/n), либо — в асинхронном режиме — из сигнала от дополнительного кварцевого резонатора (clkT0(T2) = clkTOSCI/n. Переключение между синхронным и асинхронным режимами работы осуществляется с помощью бита ASO регистра ASSR.

Выбор источника тактового сигнала, а также запуск и остановка таймеров/счетчиков осуществляются с помощью битов CS02...CS00 (CS22...CS20) регистров управления таймером TCCRn согласно Табл. 1.7.

Таблица 1.7. Выбор источника тактового сигнала таймеров/счетчиков ТО и Т2

CSn2

CSn1

CSn0

Источник тактового сигнала

Обычный таймер/счетчик

Асинхронный таймер/счетчик

ASn=0

ASn=1

0

0

0

Таймер/счетчик остановлен

Таймер/счетчик остановлен

0

0

1

clkI/O

clkI/O

clkTOSCI

0

1

0

clkI/O/8

clkI/O/8

clkTOSCI/8

0

1

1

clkI/O/64

clkI/O/32

clkTOSCI/32

1

0

0

clkI/O/256

clkI/O/64

clkTOSCI/64

1

0

1

clkI/O/1024

clkI/O/128

clkTOSCI/128

1

1

0

Вывод Тn, счет осуществляется по заднему фронту импульсов

clkI/O/256

clkTOSCI/256

1

1

1

Вывод Тn, счет осуществляется по переднему фронту импульсов

clkI/O/1024

clkTOSCI/1024

1.5.2. Режимы работы

Режим работы таймера/счетчика ТО (Т2) определяется состоянием битов WGMn2:WGMnO регистра TCCRn. Зависимость режима работы таймеров/счетчиков от состояния этих битов показана в Табл. 1.8.

Таблица 1.8. Режимы работы таймеров/счетчиков Т0 и Т2

Номер режима

WGMn1

WGMn0

Режим работы таймера/счетчика

Модуль счета (TOP)

Обновление регистров OCRn

Момент установки флага TOVn

0

0

0

Normal

$FF

Немедленно

$FF

1

0

1

Phase Correct PWM

$FF

При TOP

$00

2

1

0

CTC (сброс при совпадении)

OCRn

Немедленно

$FF

3

1

1

Fast PWM

$FF

При TOP

$FF

Режим СТС (сброс при совпадении)

В этом режиме счетный регистр тоже функционирует как обычный суммирующий счетчик, инкрементирование которого осуществляется по каждому импульсу тактового сигнала clkTn. Однако максимально возможное значение счетного регистра и, следовательно, разрешающая способность счетчика определяются регистром сравнения OCRn. После достижения значения, записанного в регистре сравнения, счет продолжается со значения $00. Если в регистре сравнения записано $FF, то в том же такте сигнала clkTn, в котором обнуляется счетный регистр, устанавливается флаг прерывания по переполнению TOVn в соответствующем регистре флагов.

При достижении счетчиком максимального значения устанавливается флаг OCFn, и, если бит ОСIEn соответствующего регистра маски установлен в 1, генерируется прерывание. Одновременно с установкой флага может изменяться состояние выводов ОСn микроконтроллера. Состояние выводов определяется битами СОМn1:СОМn0 регистра управления TCCR, как указано в Табл. 1.9.

Таблица 1.9. Управление выводами ОСn в режиме СТС

COMn1

COMn0

Описание

0

0

Таймер/счетчик Tn отключен от вывода ОСn

0

1

Состояние вывода меняется на противоположное

1

0

Вывод сбрасывается в 0

1

1

Вывод устанавливается в 1

Для генерации сигнала заданной частоты необходимо записать в биты СОМn1:СОМnО значение 01 (переключение вывода). Частота генерируемого сигнала будет определяться выражением

,

где N — коэффициент деления предделителя.

При необходимости состояние вывода ОСn можно изменить принудительно записью лог. 1 в бит FOCn соответствующего регистра управления. Прерывание при этом не генерируется и сброса счетного регистра не производится.

Режим Fast PWM

Режим Fast PWM («Быстродействующий ШИМ») позволяет генерировать высокочастотный сигнал с широтно-импульсной модуляцией. В связи с высокой частотой генерируемого сигнала данный режим с успехом может использоваться в таких приложениях, как регулирование мощности, выпрямление, цифро-аналоговое преобразование и др.

Счетный регистр в этом режиме функционирует как суммирующий счетчик, инкрементирование которого осуществляется по каждому импульсу тактового сигнала clkTn. Состояние счетчика изменяется от $00 до максимального значения, после чего счетный регистр сбрасывается и цикл повторяется. При достижении счетчиком максимального значения устанавливается флаг прерывания по переполнению TOVn в соответствующем регистре флагов, а при равенстве содержимого счетного регистра и регистра сравнения ОСFn устанавливается флаг OCFn. Максимальное значение равно $FF.

Особенностью работы схемы сравнения в этом режиме является двойная буферизация записи в регистр OCRn, которая заключается в том, что записываемое число на самом деле сохраняется в специальном буферном регистр, а изменение содержимого регистра сравнения происходит только в момент достижения счетчиком максимального значения. Благодаря такому решению исключается появление несимметричных импульсов сигнала (помех) на выходе модулятора, которые были бы неизбежны при непосредственной записи в регистр сравнения.

Состояние выводов ОСn микроконтроллера в этом режиме также определяется содержимым битов СОМn1:СОМn0 регистра TCCRn.

Таблица 1.10. Управление выводом OCn в режиме Fast PWM

Рис. 1.5. Формирование ШИМ-сигнала в режиме Fast PWM

Частота генерируемого сигнала определяется выражением

где N— коэффициент деления предделителя.