В принципе таймер это простой счетчик. Его достоинство в том, что он может считать импульсы входной частоты и работать независимо от основного потока выполнения программы. Строго заданная частота тактирования делает возможным измерять интервалы времени в единицах периода тактов таймера.
Тактирование от асинхронного источника. В отличие от двух других таймеров, которые не поддерживают этот вариант тактирования, 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].