owned this note
owned this note
Published
Linked with GitHub
# support: Устройство 8битного таймера
В даташите 71 страница 8-bit Timer/Counter0 with PWM

На clock подаются тактовые импульсы, которые увеличивают счёт на 1. Результаты счётчика выводятся на порты q. При переполнении счётчик обнуляется и на порт O (overflow) приходит 1
Для сброса счётчика можно подать на r (reset) единичку
На d подаётся исходное значение
Более подробная схема счётчика изнутри: (работает на t- триггерах)

Так как нам может понадобиться сброс на любом числе, нам нужна ещё система сброса, которая проверяет, что текущее число на счетчике равно необходимому, и сбрасывает счётчик в этом случае, подаёт следующему элементу в цепочке импульс, сигнализирующий о успешной работе таймера
Эта схема подходит для жёстко заданного числа для счетчика

А вот эта для того, что можно задавать в рантайме. На неё дополнительно приходит необходимое для сравнения число. Примерно по такой схеме работают счётчики и таймеры в авр

Функции счетчика:
1. Посчитыввть импульсы. Например, срабатывания датчика
2. Таймеры. Тогда на вход clock должно подаваться сигнал с тактового генератора с известной частотой (постоянной).
Для настройки тактового сигнала используется [предделитель](/xRRZwK1LR42uuuzX0FBAog) (я там инфу обновил, теперь все подробнее)
Основу таймера составляет двоичный счётчик (timer counter)
Приблизительная схема таймера (не для атмега16, но для понимания в самый раз)

(соре, плохо видно)
Control logic содержит необходимую частоту, пред делитель, и он проводит в двоичный таймер клок сигнал и сигнал на сброс
При переполнении таймер подаёт сигнал на counter logic
Иначе подаёт на компаратор, который проверяет, совпадает ли количество счета с необходимым. Отправляет инфу в counter logic
Timer counter compare register содержит информацию о количестве тиков, которые нужно пройти счетчику. Передаёт информацию компаратору
В control logic заносится инфа из регистров управления, заносит инфу в регистры статуса
В атмега16 вот такое - оно в целом довольно схоже с тем, что было в ролике, основное отличие в наличии направления таймера

Coutner unit diagram

1:45:00 в ролике описание регистров, но там для атмега128, и много инфы отличающейся
Для