-fl
МИКРОКОНТРОЛЛЕРЫ
If
А лександр Черном ы рдин
г. Магнитогорск
E-maii: chav1961 @ radioliga.com
Микроконтроллер ATMEGA128
ТА Й М Е Р Ы М И К Р О К О Н Т Р О Л Л Е Р А
Т
Продолжение.
Начало в N98/2008
Таймеры микроконтроллера ATMegal 28 имеют много со-
впадающих режимов, поэтому сначала разберем эти режи-
мы в общем, не касаясь конкретных таймеров.
Источником импульсов для таймеров может служить как
сигнал тактового генератора процессора (возможно, прошед-
ший предварительный делитель), так и внешний источник
импульсов (для таймера 0 - внешний кварцевый генератор
частотой 32 кГц на линиях порта Q[3].
.G[4], для таймеров 1 .
.3
- источник импульсов на линии Т1 (порт D[6]), Т2 (порт D[7]) и
ТЗ (порт Е[6]) соответственно). Как и в микроконтроллере
АТПпу15, предварительные делители можно сбрасывать с
помощью битов в регистре SFIOR (отдельно для таймера О,
и отдельно для таймеров 1.
.3, которые имеют один общий
делитель).
Самый простой режим работы таймеров - счет импуль-
сов до переполнения счетного регистра таймера. По факту
переполнения счетного регистра таймера может быть сгене-
рирован сигнал прерывания.
Следующий режим - счет импульсов до совпадения зна-
чения в счетном регистре таймера и регистрах сравнения
OCRi (такой режим подробно разбирался при рассмотрении
. микроконтроллера АТПпу15). Таймеры 0 и 2 имеют по одно-
му такому регистру, таймеры 1 и 3 - по три. По факту совпа-
дения значений счетного регистра и регистра сравнения мо-
жет быть сгенерирован сигнал прерывания. Результат срав-
нения (лог.О - лог.1) может быть выведен и на внешние ли-
нии микроконтроллера: порт В[4] - таймер 0, порт В[5].
.В[7] -
Таймер 1 и регистр OCR1 А, OCR1 В, OCR1С соответственно
(линия порта В[7] используется также и для таймера 2), порт
Е[3].
.Е[5] - таймер 3 и регистр 0CR3A, OCR3B, OCR3C соот-
ветственно.
Следующий режим - счет импульсов до совпадения зна-
чения в счетном регистре таймера и регистрах захвата ICRi,
- реализован только в таймерах 1 и 3. Суть его работы в
точности соответствует предыдущему режиму, отличие зак-
лючается в способе занесения информации в регистр ICRi -
его можно выполнить как программным путем, так и скопи-
ровав в него текущее значение из счетного регистра тайме-
ра. Копирование это выполняется аппаратно по сигналу с
внешней линии (для таймера 1 - порт D[4], для таймера 3 -
порт Е[7]), а для таймера 1 таким сигналом может служить и
выходной сигнал аналогового компаратора (включается би-
том 2 регистра ACSR). “Щелкнув” по одной из этих линий, мы
зафиксируем новое значение в регистре ICRi асинхронно и
независимо от процессора. Как и предыдущий режим, ре-
жим сравнения с регистром захвата ICRi может генериро-
вать сигнал прерывания.
Для обоих режимов существует два варианта “поведе-
ния” таймеров после того, как сравнение успешно произош-
ло: либо таймер продолжает считать дальше, до переполне-
ния, либо он при сравнении сбрасывается и начинает отсчет
с нуля. Второй режим называется в документации режимом
СТС (Clear Timer on Compare). Способ “поведения" задается
при программировании режимов работы таймера.
Следующий режим работы - режим ШИМ. Этот режим
подробно разбирался при рассмотрении микроконтроллера
АТ"Ппу15. Следует отметить, что для таймеров существует
два варианта работы ШИМ, которые называются соответ-
ственно fast PWM (быстрый ШИМ) и phase correct PWM (ре-
жим с коррекцией фазы). Отличие их заключается втом, что
во втором случае при перепрограммировании регистров,
обеспечивающих работу ШИМ, изменение скважности вы-
ходных импульсов происходит более плавно (правда, за счет
вдвое меньшей частоты выходных импульсов). Это имеет зна-
чение в том случае, если выходной сигнал ШИМ использует-
ся для управления работой трехфазных двигателей либо
иного силового оборудования. В радиолюбительской прак-
тике такого рода задачи встречаются достаточно редко. От-
личие таймеров 1 и 3 от таймеров 0 и 2 также в том, что
регистров OCR в таймерах 1 и 3 - по три штуки, поэтому и
ШИМ может быть не однофазным, а трехфазным.
Разберем теперь подробно назначения регистров тайме-
ров. Таймер 0 представлен в микроконтроллере следующи-
ми регистрами:
- управляющие регистр TCCRO;
- счетный регистр TCNTO;
- регистр сравнения OCRO;
- регистр асинхронного состояния ASSR.
Регистры TCNTO и OCRO не отличаются по назначению
от аналогичных регистров микроконтроллера ATTinyl 5. Уп-
равляющий регистр TCCRO имеет следующий формат:
- бит 7 - симуляция сравнения с регистром OCRO. Ана-
логичен биту 2 регистра SFIOR микроконтроллера ATTinyl 5;
- бит 6 и бит 3 - режим работы таймера:
• 00 - режим счета до переполнения
• 01 - ШИМ в режиме phase correct
• 10 - режим счета до сравнения с OCRO (со сбросом
таймера)
• 11 - ШИМ в режиме fast
- бит 5 и бит 4 - управление линией порта В[4]:
• 00 - линия не используется, работает в соответствии
с режимом порта В
• 01 - переключение состояния по факту совпадения
TCNTO и OCRO (в режиме ШИМ не используется)
• 10 - сброс линии по факту совпадения TCNTO и OCRO
• 11 - установка линии по факту совпадения TCNTO и
OCRO
- бит 2.
.0 - источник сигнала для таймера (комбинация
000 - таймер отключен, 001 - тактовая частота, 010 - такто-
вая частота, поделенная на 8, 011 - на 32,100 - на 64,101 -
на 128,110 - на 256,111 - на 1024).
Регистр ASSR используется для включения в качестве
источника импульсов внешнего кварца на линючхС[3].
.С[4].
Его формат:
м
а
30
У Радиолюбитель - 0 9 /2 0 0 8
предыдущая страница 30 Радиолюбитель 2008-09 читать онлайн следующая страница 32 Радиолюбитель 2008-09 читать онлайн Домой Выключить/включить текст