Файл: Микропроцессорные устройства систем управления (Ю.И. Иванов, 2005).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 1577
Скачиваний: 1
Процедуры доступа ко всем двухбайтовым регистрам должны выполняться в соответствии с правилами данного примечания.
Остальные параметры и режимы задаются регистрами TCCR1A и TCCR1B.
Символические имена битов управления в регистре TCCR1А
|COMlAl|COMlA0lCQMlBl|CQMlB0| - ( - \ PWM11 | PWM10|
Каждый канал сравнения в дополнение к флагу прерывания может фор мировать на выводах порта D выходной сигнал: ОС1А (альтернативная функция PD5), ОС1В (альтернативная функция PD4) с параметрами, определяемыми битами COM1A1, СОМ1 АО, COMIBI, СОМ1В0 регистра TCCR1A. Режимы формирования выходных сигналов для каналов Compare A, Compare В одинаковы и соответствуют битам управления СОМ 1X1, СОМ 1X0 (X - это или канал А, или канал В) следующим образом:
00 - выходной сигнал ОС IX не формируется, выходы порта D не ис пользуются.
01 - выходной сигнал ОС IX импульсный.
10 - выходной сигнал ОС IX имеет активный нулевой уровень. 11 - выходной сигнал ОС IX имеет активный единичный уровень.
Рекомендуется при использовании сигнала ОСIX запретить прерывание по этому каналу очисткой соответствующего бита разрешения в регистре TIMSK, иначе произойдет обработка прерывания при формировании этого сигнала. Эти же сигналы являются выходными для таймера, работающего в режиме модулятора ШИМ.
Последние биты PWM11, PWM10 регистра TCCR1A определяют работу таймера 1 в режиме модулятора ШИМ следующим образом:
00 - режим модулятора ШИМ запрещен (работа в стандартных режимах таймера).
01 - 8-битовый модулятор ШИМ.
10 - 9-битовый модулятор ШИМ,
11 - 10-битовый модулятор ШИМ.
Работа в режиме модулятора ШИМ будет описана позднее.
Команда чтения младшего байта одновременно записывает старший байт в TEMP, а следующая за этим операция чтения старшего байта фактически выполня ется из регистра TEMP. При записи последовательность обратная: сначала произво дится запись старшего байта (в действительности выполняется в TEMP), а следую щая за ней операция записи младшего байта производит одновременную передачу старшего байта из TEMP. Для корректного выполнения доступа к таким регистрам прерывание должно быть запрещено перед началом обмена.
58
Символические имена битов управления в регистре TCCR1B
1 ICNC1 1 ICES1 | - 1 - СТС1 | CS12 CS11 1 CS10 1
Биты ICNC1 и ICES1 второго регистра управления TCCR1B определяют работу таймера 1 в режиме "захват" (capture). ICNC1 определяет функцию дополнительного контроля входного сигнала ICP. При нулевом уровне это го бита функция "захват" включается первым тактом микроконтроллера после активного уровня сигнала ICP. При единичном значении бита требу ется, чтобы входной сигнал ICP был активным не менее 4 тактов микро контроллера. Этот режим позволяет устранить ложное включение под дей ствием кратковременных помех. Бит ICES1 определяет активный уровень сигнала ICP, при нуле - переход сигнала в активное состояние по падаю щему фронту, при единице - по нарастающему фронту.
Бит С Т О может разрешить сброс таймера 1 по сигналу сравнения кана ла А. При нулевом значении бита сброс таймера по каналу сравнения А не производится, при единичном значении бита и совпадении эталонного зна чения канала А с текущим состоянием таймера производится сброс его счетчика в исходное состояние ($0000). Биты CS12, CS11, CS10 задают параметры входного сигнала для счетчика в таймере 1:
000 - входной сигнал блокируется, таймер остановлен.
001 - таймер работает (при всех последующих значениях управляющих битов также работает), входной сигнал счетчика - тактовые им пульсы микроконтроллера с частотой im.
010 - частота входного сигнала fT„/8.
011 - частота входного сигнала fTH/64.
100 - частота входного сигнала fT„/256.
101 - частота входного сигнала fTH/1024.
110 - внешний входной сигнал, поступающий на вход Т1 (альтерна тивная функция линии РВ1), падающий фронт.
111-внешний входной сигнал Tl (PB1), нарастающий фронт.
При остановке таймера этими битами (000) все функции блокируются так же, как и в таймере 0. При работе таймера от внешнего источника сигнала тактовые импульсы микроконтроллера стробируют входные сигналы счет чика.
Кроме регистра ICR1, работу таймера I обеспечивают еще три 16разрядных регистра: регистр текущего состояния таймера TCNT1, регистр эталонного значения канала сравнения A OCR1A, регистр эталонного значения канала сравнения В OCR1B. Эти регистры программно доступны и для чтения, и для записи и фактически образуются регистровыми парами (индекс L - регистр младшего байта, индекс Н - регистр старшего байта). Процедуры доступа, как и ко всем двухбайтовым регистрам, должны вы-
59
подняться в соответствии с правилами, изложенными в примечании на предыдущей странице.
Чтение регистров TCNT1L и TCNT1H позволяет программно контроли ровать текущее состояние таймера, запись в эти регистры программно за дает текущее состояние. При программном обращении к TCNT1 счетчик таймера сохраняет режим работы, заданный соответствующими битами ре гистров управления. Регистры OCR1A и OCRIB (no 2 байта каждый) слу жат для записи и хранения эталонных значений обоих каналов сравнения. Если в момент записи выполняется условие сравнения, прерывание по ка налу сравнения не формируется.
Если выбран режим модулятора ШИМ (биты управления PWM11, PWM10), счетчик таймера 1 из суммирующего становится реверсивным. Его состояние в режиме суммирования возрастает от начального $0000 до максимального, определяемого разрядностью кода управления (при 8- битовом управлении - $00ff, при 9-битовом - $01ff, при 10-битовом - $03ff).Затем счетчик переходит в режим вычитания и уменьшает состояние до начального, возвращаясь далее в режим суммирования, и т.д.
Частота сигнала ШИМ определяется делением тактовой частоты микро контроллера на коэффициент, зависящий от разрядности кода управления (8 бит - 510, 9 бит - 1022, 10 бит - 2046). Корректная работа в режиме ШИМ возможна только при значении битов управления входным сигналом таймера (CS12, CS11,CS10) - 001, т.е. в случае подачи на вход таймера так товых сигналов микроконтроллера. Коды управления ШИМ записываются в регистры эталонных значений обоих каналов сравнения OCR1A и OCR1B, а выходные сигналы ШИМ поступают на выходы каналов сравне ния ОС1А (PD5), ОС IB (PD4) и, следовательно, таймер 1 реализует два канала ШИМ с независимыми кодами управления одинаковой разрядности и раздельныхми выходными сигналами.
Биты управления выходными сигналами СОМ1Х1, СОМ1Х0 (X ~ это или А, или В) регистра TCCR1A задают параметры сигналов ШИМ сле дующим образом:
00, 01 - выходные сигналы ШИМ не формируются, выходы ОС IX не используются.
10 - неинвертированный ШИМ, длительность логической единицы в каждом периоде выходного сигнала пропорциональна коду управления ШИМ.
11 - инвертированный ШИМ, длительность логического нуля в каж дом периоде выходного сигнала пропорциональна коду управ ления ШИМ.
Флаг переполнения TOV1 в режиме ШИМ устанавливается, когда счетчик переключается из состояния $0000. Этот флаг позволяет определить начало каждого периода сигнала ШИМ.
60
Таким образом, таймер 1, построенный на 16-разрядном счетчике, фор мирует 4 флага прерывания, может работать в режиме двухканального мо дулятора ШИМ и обеспечивает аппаратную реализацию разнообразных функций микроконтроллера. Программное управление всеми функциями таймера 1 производится аналогично показанному в примере для таймера 0.
3.4.3. Таймер 2
Таймер 2 построен на основе 8-разрядного счетчика, формирует два фла га прерываний: флаг переполнения TOV2, флаг канала сравнения OCF2, может работать в режиме 8-битового модулятора ШИМ. Флаги прерываний обрабатываются в соответствии со стандартной описанной ранее процеду рой с вызовом векторов прерывания: вектор переполнения TIM2_OVF с адресом $004, вектор сравнения ТШ2_СОМР с адресом $003. Дополни тельно таймер 2 может работать в асинхронном режиме, получая входные сигналы счетчика от дополнительного генератора микроконтроллера.
Параметры и режимы работы таймера 2 определяют 4 регистра файла регистров ввода-вывода: регистр управления TCCR2, регистр текущего
состояния таймера TCNT2, регистр эталонного значения канала срав нения OCR2, регистр асинхронного режима ASSR. Работа таймера 2 аналогична работе таймера 1 в соответствующих режимах.
В регистре управления TCCR2, программно доступном для записи и чтения, используется 7 бит.
Символические имена битов управления в регистре TCCR2 PWM2 СОМ21 СОМ201 СТС2 | CS22 | CS21 1 CS20
Бит PWM2 управляет режимом ШИМ. 0 - запрещает режим ШИМ и оп ределяет стандартную работу таймера, 1 - переводит таймер 2 в режим ШИМ.
Биты СОМ21, СОМ20 определяют процедуры формирования выходно го сигнала канала сравнения ОС2 (альтернативная функция линии вво да-вывода PD7). Работа канала сравнения таймера 2 аналогична работе ка налов сравнения таймера 1. Параметры сигнала ОС2 для таймера 2 в зави симости от битов управления следующие:
00 - выходной сигнал ОС2 не формируется, выход PD7 порта D не используется.
01 - выходной сигнал ОС2 импульсный.
10 - выходной сигнал ОС2 имеет активный нулевой уровень.
11 - выходной сигнал ОС2 имеет активный единичный уровень. Рекомендуется при использовании сигнала ОС2 запретить прерывание очи сткой соответствующего бита разрешения в регистре TIMSK, иначе про изойдет обработка прерывания при формировании этого сигнала. Этот же
61
сигнал является выходным для таймера 2, работающего в режиме модуля тора ШИМ.
Бит СТС2 может разрешить сброс таймера 2 по сигналу сравнения. При нулевом значении бита сброс таймера по каналу сравнения не производит ся, при единичном значении бита и совпадении эталонного значения с те кущим состоянием таймера производится сброс его счетчика в исходное состояние ($00).
Биты CS22, CS21, CS20 задают параметры входного сигнала для счетчи
ка в таймере: |
|
000 |
- входной сигнал блокируется, таймер остановлен. |
001 |
- таймер работает (при всех последующих значениях управ |
ляющих битов также работает), частота входного сигнала |
|
счетчика - fBX. |
|
010 |
- частота входного сигнала fBX/8. |
0 1 1 - частота входного сигнала fBX/32. |
|
100 |
- частота входного сигнала fBX/64. |
101 |
- частота входного сигнала fBX/128. |
110 |
- частота входного сигнала fBX/256. |
111 |
- частота входного сигнала fBX/1024. |
При остановке таймера этими битами (000) все функции блокируются так же, как и в других таймерах.
Регистры TCNT2 и OCR2 выполняют такие же функции, как и анало гичные регистры таймера 1. Выход сигнала сравнения ОС2 (PD7) также применяется для формирования выходного сигнала ШИМ.
Регистр ASSR используется для управления работой таймера 2 в асин хронном режиме, в этом режиме входной сигнал счетчика поступает от вспомогательного генератора микроконтроллера и не синхронизируется тактовыми сигналами микроконтроллера. К входу (альтернативная
функция линии РС6) и выходу (альтернативная функция линии РС7) дополнительного генератора можно подключить отдельную частотнозадающую цепь. Например, для построения часов реального времени мож но использовать кварцевый резонатор часов с частотой 32,768 кГц.
Символические имена битов в регистре ASSR
1 • | • | • 1 - 1 AS2 1 TCN2UB | OCR2UB | TCR2UB [
AS2 - бит асинхронного режима. При 0 входной сигнал счетчика форми руется тактовым генератором микроконтроллера. При 1 входной сигнал счетчика формируется вспомогательным генератором с использованием цепей РС6, РС7. Переключение между асинхронным и синхронным режи мами может привести к изменению состояния регистров TCCR2, TCNT2,
62