Источники тактирования таймеров Timer0, Timer1 МК

В принципе таймер это простой счетчик. Его достоинство в том, что он может считать импульсы входной частоты и работать независимо от основного потока выполнения программы. Строго заданная частота тактирования делает возможным измерять интервалы времени в единицах периода тактов таймера.

Тактирование от асинхронного источника. В отличие от двух других таймеров, которые не поддерживают этот вариант тактирования, Timer2 микроконтроллера AT90S8535 может асинхронно тактироваться от внешнего тактового сигнала. Для этой цели к выводам TOSC1 и TOSC2 может быть подключен кварцевый или керамический резонатор - это выводы, которые подсоединены к встроенному генератору.

 

Встроенный генератор на выводах TOSC1 и TOSC2 оптимизирован для часового резонатора на частоту 32.768 кГц. Эта частота хорошо подходит для реализации часов реального времени (Real Time Clocks, RTC)(1). Показано главное достоинство отдельной тактовой частоты - она не зависит от системной частоты ядра AVR. Это делает возможным работу микроконтроллера на высокой частоте, в то время как таймер тактируется от внешних тактов с частотой, оптимизированной под точный отсчет времени. Дополнительно можно переключать ядро в режимы пониженного энергопотребления, что не повлияет на работу асинхронно тактируемого таймера.

Внешнее тактирование. Внешнее тактирование поддерживается только таймерами Timer0 и Timer1. Этот режим позволяет использовать широкий диапазон внешних сигналов в качестве тактовых частот. Это синхронное тактирование, что означает, что ядро детектирует состояние вывода и тактирует таймер синхронно с системной тактовой частотой, если был детектирован внешний тактовый сигнал. По каждому фронту нарастания внутреннего такта ядра делается выборка внешнего тактового сигнала. Для ядра нужно как минимум 2 такта ядра для детектирования изменения на внешнем тактовом входе, так что максимальная тактовая частота внешних тактов должна быть не более чем CK/2. Для индикации внешнего события такта может использоваться либо фронт, либо спад внешнего тактового сигнала T0/T1. Этот выбор делается в регистре TCCRx путем установки битов CS00, CS01 и CS02 (см. таблицу 1).

Реализация на ассемблере для Timer0 может быть выглядеть как в примере кода ниже. Эти строки настроят вывод T0 в качестве входа для тактовой частоты таймера, активным перепадом тактирования будет фронт нарастания сигнала (см. таблицу 1).

ldi r16, (1 << CS02)|(1 << CS01)|(1 << CS00) out TCCR0,r16     ; частота тактирования = внешний вывод T0,                      ; по фронту нарастания

ШИМ сигнал. Частота, период, скважность, duty-цикл сигнала. Принципы аппаратной генерации ШИМ на примере режима «быстрый ШИМ». Простые ЦАП, схемы

 

Широтно-импульсная модуляция (ШИМ, англ. pulse-width modulation (PWM)) — процесс управления мощностью методом пульсирующего включения и выключения прибора. Различают аналоговую ШИМ и цифровую ШИМ, двоичную (двухуровневую) ШИМ и троичную (трёхуровневую) ШИМ [1].


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: