Лекция 12
12.1. Управляющий регистр A таймера/счетчика 1-TCCR1A
12.2. Управляющий регистр B таймера/счетчика 1 – TCCR1B
12.3. 16-разрядный регистр данных T/C1 – TCNT1H и TCNT1L
12.4. 16-разрядные регистры сравнения выхода c доступом по чтению и записи OCR1AH и OCR1AL
разрядный регистр захвата входа c доступом по чтению ICR1
12.1. Управляющий регистр A таймера/счетчика 1-TCCR1A
На рис. 3.7 изображен управляющий регистр A таймера/счетчика 1.
$2F(4F)
биты 7 6 5 4 3 2 1 0
COM1A1 | COM1A0 | COM1B1 | COM1B0 | - | - | PWM11 | PWM10 |
Доступ Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт Чт Чт/Зп Чт/Зп Нач.состояние 0 0 0 0 0 0 0 0
Рис. 3.7. Управляющий регистр A таймера/счетчика 1
Биты 7, 6 – COM1A1, COM1A0; – режим 1 A сравнения выхода.
Управляющие биты COM1A1 и COM1A0 определяют характер сигнала выхода, следующего за совпадением при сравнении таймера/счетчика 1. Сигнал выхода поступает на вывод OC1A (Output Compare A). Поскольку это альтернативная функция порта I/O, то соответствующий бит управления направлением должен быть установлен в 1 (вывод работает на выход). Конфигурирование управления представлено в табл. 3.5.
Биты 5, 4 – COM1B1, COM1B0; –режим 1 B сравнения выхода.
Управляющие биты COM1B1 и COM1B0 определяют характер сигнала выхода, следующего за совпадением при сравнении таймера/счетчика 1. Сигнал выхода поступает на вывод OC1B (Output CompareB). Поскольку это альтернативная функция порта I/O, то соответствующий бит управления направлением должен быть установлен в 1 (вывод работает на выход). Конфигурирование управления представлено в табл. 3.5.
Таблица 3.5. Выбор режима сравнения 1
COM1X1 | COM1X0 | Описание |
Таймер/счетчик 1 отключен от вывода выхода OC1X | ||
Переключение выходной линии OC1X | ||
Очистка выходной линии OC1X (в 0) | ||
Установка выходной линии OC1X (в 1) |
Примечание. X = А или B.
Таблица 3.6
Настройка режима ШИМ
PWM1 | PWM1 | Описание |
Работа таймера/счетчика 1 в режиме ШИМ запрещена | ||
Работа таймера/счетчика 1 в 8-разрядном режиме ШИМ | ||
Работа таймера/счетчика 1 в 9-разрядном режиме ШИМ | ||
Работа таймера/счетчика 1 в 10-разрядном режиме ШИМ |
В режиме ШИМ функции этих битов различаются. Подробное описание приведено в табл. 3.6.
Биты 3..2 – зарезервированные биты.
Эти биты в микроконтроллерах AT90S4434/8535 зарезервированы и при считывании всегда будут 0.
Биты 1..0 – PWM11, PWM10: – биты выбора режима ШИМ.
Данные биты определяют установку режима ШИМ, как это показано в табл. 3.6.
12.2. Управляющий регистр B таймера/счетчика 1 – TCCR1B
На рис. 3.8 изображен управляющий регистр В таймера/счетчика 1.
$2E(4E)
биты 7 6 5 4 3 2 1 0
ICNC1 | ICES1 | - | - | CTC1 | CS12 | CS11 | CS10 |
Доступ Чт/Зп Чт/Зп Чт Чт Чт/Зп Чт/Зп Чт/Зп Чт/Зп Нач.состояние 0 0 0 0 0 0 0 0
Рис. 3.8. Управляющий регистр В таймера/счетчика 1
Бит 7 – ICNC1: – установка режима подавления шума на входе захвата 1.
При сброшенном в состояние 0 бите ICNC1 функция подавления шума входного триггера захвата запрещена. Вход захвата переключается по первому нарастающему/падающему фронту, поступившему на вывод входа/захвата (ICP).
При установленном в состояние 1 бите ICNC1 выполняются четыре последовательных опроса состояния вывода (ICP) и все четыре выборки должны иметь одинаковый (высокий/низкий), определяемый битом ICES1, уровень. Частота опроса соответствует частоте XTAL
Бит 6 – ICES1: – выбор фронта срабатывания на входе захвата 1.
При сброшенном в состояние 0 бите ICES1 содержимое таймера/счетчика 1 по падающему фронту на выводе входа захвата (ICP) пересылается в регистр захвата входа ICR1. При установленном в 1 бите ICES1 содержимое таймера/счетчика 1 пересылается в регистр захвата входа ICR1 по нарастающему фронту на выводе входа захвата (ICP).
Биты 5, 4 – зарезервированные биты.
Эти биты в микроконтроллерах AT90S4434/8535 зарезервированы и при считывании всегда будут 0.
Бит 3 – CTC1: – очистка таймера/счетчика 1 по совпадению.
При установленном в состояние 1 бите CTC1 таймер/счетчик 1 сбрасывается в состояние $0000 в течение тактового цикла, следующего за совпадением при сравнении. Если бит CTC1 очищен, таймер/счетчик 1 продолжает отсчет и не реагирует на совпадение при сравнении. Поскольку совпадение при сравнении детектируется в течение тактового цикла CPU, следующего за совпадением, то поведение функции будет отличаться при установке коэффициента предварительного деления таймера/счетчика большем 1. При коэффициенте предварительного деления 1 и установленном в регистре сравнения состоянии C таймер будет считать в соответствии с установкой CTC1:
... | C-2 | C-1 | C | 0 | 1 |...
При установленном коэффициенте предварительного деления 8 таймер будет считать подобно:
... | C-2, C-2, C-2, C-2, C-2, C-2, C-2, C-2 | C-1, C-1, C-1, C-1, C-1, C-1, C-1, C-1
| C, 0, 0, 0, 0, 0, 0, 0 |1,1,1,1,1,1,1,1|...
В ШИМ режиме состояние бита CTC1 значения не имеет.
Биты 2,1,0 – CS12, CS11, CS10: – выбор источника тактовой частоты.
Установкой состояния данных битов производится выбор источника тактового сигнала (в том числе коэффициента предварительного деления). Stop выполняет функцию разрешения/запрещения таймера/счетчика 1. При использовании внешнего тактирования необходимо выполнить соответствующие установки в регистре управления направлением (очистка переводит вывод в режим входа). Режимы настройки битов приведены в табл. 3.7.
Таблица 3.7
Выбор источника тактовой частоты
cs12 | cs11 | cs10 | Описание |
Стоп | |||
СK | |||
СK/8 | |||
СK/64 | |||
СK/256 | |||
СK/1024 | |||
Внешний вход Т1, падающий фронт | |||
Внешний вход Т1, нарастающий фронт |
12.3.16-разрядный регистр данных T/C1 – TCNT1H и TCNT1L
На рис. 3.9 изображен 16-разрядный регистр данных таймера/счетчика 1. 16-разрядный регистр содержит текущее значение 16-разрядного таймера/счетчика 1. Для того чтобы CPU могло считывать/записывать и старший и младший байты этого регистра одновременно, обращение реализовано посредством 8-разрядного регистра временного хранения (TEMP). Этот регистр используется также при обращении к OCR1A, OCR1B и ICR1.
$2D(4D)TCNT1H
$2C(4C)TCNT1L
биты 15 14 13 12 11 10 9 8
MSB | |||||||
LSB |
биты 7 6 5 4 3 2 1 0 Доступ Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт/Зп
Нач.состояние 0 0 0 0 0 0 0 0
Рис. 3.9. 16-разрядный регистр данных таймера/счетчика 1
Если основная программа и подпрограммы обработки прерываний используют обращение к регистрам посредством TEMP, то прерывания должны быть запрещены на время обращения из основной программы.
Таймер/счетчик 1 выполнен в виде вверх считающего или реверсивного счетчика (в ШИМ режиме) с возможностью чтения/записи. Если в таймер/счетчик 1 занесено некоторое значение и выбран источник тактового сигнала, то таймер/счетчик 1 продолжит отсчет через один тактовый цикл после установки в нем записанного значения.