Файл: Микропроцессорные устройства систем управления (Ю.И. Иванов, 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