Выбрать главу

Биты 7…3 — в AT90S2313 зарезервированы и всегда читаются как 0.

Биты 2, 1, 0 — CS02, CS01, CS00 — выбор тактовой частоты. Эти биты задают коэффициент деления предварительного делителя.

Условие «Таймер/счетчик остановлен» запрещает или разрешает функционирование таймера/счетчика. В режимах деления используется частота тактового генератора микроконтроллера. При работе от внешнего источника предварительно должен быть установлен соответствующий бит регистра направления данных.

Рис. 2.28. Таймер/счетчик 0 TCNT0

Таймер/счетчик реализован как нарастающий счетчик с возможностью чтения и записи. При записи таймера/счетчика, если присутствуют тактовые импульсы, таймер/счетчик продолжает счет в следующем за операцией записи тактовом цикле таймера.

16-разрядный таймер/счетчик 1

16-разрядный таймер/счетчик может получать импульсы тактовой частоты — СК, импульсы с предварительного делителя (СК/8, СК/64, СК/256 или СК/1024), импульсы с внешнего вывода или быть остановлен соответствующими установками регистра TCCR1A. Флаги состояния таймера (переполнения, совпадения и захвата) и управляющие сигналы находятся в регистре TIFR. Разрешение и запрещение прерываний от таймера 1 управляется регистром TIMCK.

Рис. 2.29. Блок-схема таймера/счетчика 1

При работе таймера/счетчика 1 от внешнего сигнала этот сигнал синхронизируется с тактовым генератором микроконтроллера. Для правильной обработки внешнего сигнала минимальное время между соседними импульсами должно превышать период тактовой частоты процессора. Сигнал внешнего источника обрабатывается по спадающему фронту тактовой частоты процессора.

Таймер/счетчик 1 поддерживает функцию совпадения, используя регистр совпадения OCR1А в качестве источника для сравнения с содержимым счетчика. Функция совпадения поддерживает очистку счетчика и переключение выхода по совпадению.

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

Функция захвата по входу предусматривает захват содержимого таймера/счетчика 1 в регистр захвата ICR1 и управляется внешним сигналом на входе захвата — ICP. Работа режима захвата определяется управляющим регистром TCCR1.

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

Рис. 2.30. Регистр А управления таймером/счетчиком 1 TCCR1A

Биты 7, 6 — СОМ1А1, СОМ1А0: режим выхода совпадения, биты 1 и 0. Эти управляющие биты надают отклик вывода ОС 1 процессора на совпадение регистра сравнения и таймера/счетчика 1. Поскольку это апьтернативная функция пор га, соответствующий бит направления должен устанавливать вывод на выход. Конфигурация управляющих битов показана в следующей таблице.

В режиме ШИМ эти биты имеют другие функции, которые указаны в табл. 2.10.

При изменении битов СОМ1А1 и СОМ1А0 прерывание по совпадению должно быть запрещено очисткой соответствующего бита в регистре TIMCK. В противном случае прерывание может произойти во время изменения этих битов.

Биты 5…2 — в AT90S2313 зарезервированы и всегда читаются как 0.

Биты 1,0 — PWM11, PWM10: биты установки ШИМ. Эти биты устанавливают режим работы таймера/счетчика 1 в качестве ШИМ (табл. 2.7). Подробнее этот режим будет рассмотрен ниже.

Рис. 2.31. Регистр управления таймером/счетчиком 1 TCCR1B

Бит 7 — ICNC1: подавитель входного шума входа захвата. Если ICNC1=0, подавление входного шума входа захвата запрещено. При этом захват срабатывает по первому заданному (нарастающему или спадающему) фронту сигнала на выводе ICP. При установке бита обрабатываются четыре последовательные выборки сигнала на выводе ICP. Для срабатывания захвата все выборки должны соответствовать уровню, заданному битом ICES1. Частота выборок равна тактовой частоте процессора.

Бит 6 — ICES1: выбор фронта сигнала захвата. Если бит ICES1 = 0, содержимое таймера/счетчика 1 переписывается в регистр захвата по спадающему фронту сигнала на выводе ICP. Если бит установлен — по нарастающему фронту сигнала.