!
МИКРОКОНТРОЛЛЕРЫ
х'РЛ
і
____
мера и глобальному прерыванию. Эго относится также к флагам срав-
нения выхода таймеров и прерываниям.
Частота ШИМ будет соответствовать тактовой частоте таймера,
деленной на 510.
Асинхронная работа таймера/счетчикаО
При синхронной работе таймера/счетчикаО все операции и такти-
рование идентичны работе таймера/счетчика2. Однако асинхронная
работа имеет некоторые особенности.
Это важно! При переключении между асинхронным и синхрон-
ным тактированием таймера/счетчикаО регистры таймера TCNT0,
OCRO и TCCR0 могут быть повреждены. Безопасное переключение
выполняется следующей последовательностью действий:
1. Запрещаются прерывания OCIEO и TOIEO таймераО.
2. Соответствующей установкой ASO выбирается источник такто-
вого сигнала.
3. В TCNTO, OCRO и TCCR0 записываются новые значения.
4. Если выполняется переключение в асинхронный режим, ожи-
дать TCNOUB, OCROUB и TCR0UB.
5. Разрешить прерывания, если это необходимо.
Генератор оптимизирован под использование часового кристалла
с частотой 32,768 кГц. Внешний тактовый сигнал, подаваемый на этот
вывод, проходит через тот же самый усилитель с полосой пропуска-
ния 256 кГц. Таким образом, внешний тактовый сигнал должен быть в
диапазоне 0.
..256 кГц. Частота внешнего тактового сигнала, подавае-
мого на вывод TOSC1, не должна превышать одной четвертой от так-
товой частоты CPU. Отметим, что тактовая частота CPU может быть
ниже частоты XTAL, если разрешено деление частоты XTAL.
При записи в один из регистров TCNTO, OCRO или TCCR0 за-
писываемая величина пересылается в регистр временного хране-
ния и фиксируется после двух положительных фронтов TOSC1.
Пользователь не должен записывать новое значение прежде, чем
содержимое регистра временного хранения не будет передано по на-
значению. Каждый из указанных регистров имеет свой собственный
регистр временного хранения; это означает, к примеру, что запись в
TCNTO не исказится при записи в OCRO. Для того, чтобы убедиться в
выполнении пересылки в регистр назначения, используется регистр
статуса асинхронного режима (Asynchronous Status Register-ASSR).
При вводе режима Sleep после записи в регистры TCNTO, OCRO
или TCCR0 пользователь должен ожидать, пока записываемый ре-
гистр не будет обновлен, если таймер/счетчикО используется для ак-
тивации прибора. В ином случае MCU перейдет
в режим Sleep прежде, чем изменения окажут
какой-либо эффект. Эго особенно важно, если
для активации прибора используется прерыва-
ние по сравнению выходаО; сравнение выхода
запрещается во время записи в OCRO или
TCNTO. Если цикл записи не завершен (т.е.
пользователь введет режим Sleep прежде, чем
бит OCROUB будет сброшен в 0), прибор никог-
да не получит совпадения при сравнении, и MCU
не будет активирован. Если таймер/счетчикО ис-
пользуется для активации прибора из режима
Power Save, и если пользователь намеревается
возобновить режим Power Save, то необходимо
предпринимать меры предосторожности - для
сброса логики прерывания необходим один цикл
TOSC1. Если время между активацией и восста-
новлением режима Power Save меньше одного
цикла TOSC1, прерывание не произойдет, и при-
бор не будет активирован. Если пользователь со-
мневается в том, что промежуток времени пе-
ред восстановлением режима Power Save дос-
таточен, необходимо использовать следующий
алгоритм:
1. Записать значение в TCCRO, TCNTO или
OCRO.
2. Подождать, пока соответствующий флаг
занятого обновления в регистре ASSR не будет
сброшен в 0.
3. Ввести режим Power Save.
Генератор частоты 32 кГц таймера/счетчи-
каО работает всегда, за исключением режима
Power Down. При восстановлении питания или
активации из режима Power Down пользователь должен помнить о
том, что генератору для стабилизации необходимо время порядка од-
ной секунды. Пользователю рекомендуется выждать не менее одной
секунды, прежде чем использовать таймер/счетчикО после подачи пи-
тания или активации из режима Power Down.
О писание акт ивации прибора из ре ж и м а P o w e r Save при асинх-
р о нн ом т акт ировании т аймера.
Когда условия прерывания выпол-
нены, на следующем цикле тактовой частоты таймера начинается про-
цесс активации, т.е. состояние таймера должно увеличиться как мини-
мум на единицу, прежде чем процессор сможет прочитать состояние
счетчика. Флаги прерываний обновляются за три тактовых цикла про-
цессора после запуска тактовой частоты процессора. В течение этих
циклов процессор выполняет команды, но условия прерывания еще
не читаемы и подпрограмма обработки прерывания не может начать
выполнение.
Во время асинхронной работы синхронизация флагов прерыва-
ний асинхронного таймера занимает три тактовых цикла процессора
плюс один цикл таймера. Таким образом, содержимое таймера уве-
личивается минимум на единицу, прежде чем процессор сможет про-
читать содержимое таймера, вызвавшее установку флага прерыва-
ния. Вывод сравнения выхода меняет состояние в соответствии с
тактовым сигналом таймера и не синхронизирован с тактовой часто-
той процессора.
Регистр статуса асинхронного режима - ASSR - (Asynchronous
Status Register)
B it 7.
.4 - R es: R eserved B its - З арезервированны е бит ы
Эти биты в микроконтроллерах ATmega603/103 зарезервированы
и при считывании всегда будут показывать 0.
B it 3 - ASO: A synchronou s Tim er/CounterO - А син хрон ны й ре ж и м
т аймера/счет чикаО
При установленном в состояние 1 бите таймер/счетчикО тактиру-
ется сигналом вывода TOSC1. При очищеном бите таймер/счетчикО
тактируется внутренним тактовым сигналом СК. При изменении со-
стояния этого бита содержимое TCNT0 может быть повреждено.
Биты
7
6
5
4
3
2
1
0
$30 ($50)
-
AS0
TCNOUB
OCROUB
TDROUB
ASSR
Чтение/
Запись
R
R
R
R
R/W
R
R
R
Начальное
состояние
0
0
0
0
0
0
0
0
предыдущая страница 44 Радиолюбитель 2003-08 читать онлайн следующая страница 46 Радиолюбитель 2003-08 читать онлайн Домой Выключить/включить текст