Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Бит $22($42) R/W Нач.знач. | ASSR | ||||||||
- | - | - | - | AS2 | TCN2UB | OCR2UB | TCR2UB | ||
R | R | R | R | R/W | R/W | R/W | R/W | ||
Рисунок 5.16 - Регистр состояния асинхронного режима (ASSR)
Биты 7,4 - Зарезервированы, читаются как «0».
Бит 3 – AS2 (Asyncronous Timer/Counter2). Переключение режима работы. Если разряд установлен в «1», на вход прсдделитсля таймера/счетчика Т2 поступают импульсы с вывода TOSC1 микроконтроллера (асинхронный режим). В этом режиме выводы TOSC1 и TOSC2 используются для подключения кварцевого резонатора и. соответственно, не могут использоваться как контакты ввода/вывода общего назначения.
Если разряд сброшен в «0», на вход предделителя поступает внутренний тактовый сигнал микроконтроллера. В этом случае выводы TOSC1 и TOSC2 являются контактами ввода/вывода общего назначения.
При изменении состояния этого разряда содержимое регистров TCNT2, OCR2 и TCCR2 может быть повреждено.
Бит 2 – TCN2UB (Timer/Counter2 Update Busy). Состояние обновления регистра TCNT2. При записи в регистр TCNT2 этот флаг устанавливается в «1», а после пересылки записываемого значения в этот регистр флаг аппаратно сбрасывается в «0». Таким образом, сброшенный флаг TCN2UB означает, что регистр TCNT2 готов для записи в него нового значения.
Запись в регистр TCNT2 при установленном флаге TCN2UB может привести к повреждению прежнего содержимого регистра и к генерации прерывания.
Бит 1 – OCR2UB (Output Compare Register2 Update Busy). Состояние обновления регистра OCR2. При записи в регистр OCR2 этот флаг устанавливается в «1», а после пересылки записываемого значения в этот регистр флаг аппаратно сбрасывается в «О». Таким образом, сброшенный флаг OCR2UB означает, что регистр OCR2 готов для записи в него нового значения.
Запись в регистр OCR2 при установленном флаге OCR2UB можег привести к повреждению прежнего содержимого регистра и к генерации прерывания.
Бит 0 – TCR2UB (Timer/Counter Control Register2 Update Busy). Состояние обновления регистра TCCR2. При записи в регистр TCCR2 этот флаг устанавливается в «I», а после пересылки записываемого значения в этот регистр флаг аппаратно сбрасывается в «О». Таким образом, сброшенный флаг TCR2UB означает, чго регистр TCCR2 готов для записи в него нового значения.
Запись в регистр TCCR2 при установленном флаге TCR2UB может привести к повреждению прежнего содержимого регистра и к генерации прерывания.
Необходимо отметить, что при переключении между синхронным и асинхронным режимами, содержимое регистров таймера/счетчика может быть повреждено. Чтобы этого избежать, рекомендуется придерживаться следующей последовательности действий:
1. Запретить прерывания от таймера/счетчика Т2 (разряды TOIE2 и
OCIE2 регистра TIMSK).
2. Переключить таймер/счетчик в требуемый режим.
3. Записать новые значения в регистры TCNT2, OCR2 и TCCR2.
4. В случае переключения в асинхронный режим — ждать, пока флаги
TCN2UB, OCR2UB и TCR2UB не будут сброшены.
5. Разрешить прерывания (если требуется).
При работе таймера/счетчика Т2 в асинхронном режиме установка флагов прерываний от него производится синхронно с тактовым сигналом микроконтроллера. Для синхронизации требуется 3 машинных цикла плюс один период тактового сигнала таймера/счетчика. Поэтому к моменту, когда микроконтроллер сможет прочитать состояние счетчика, вызвавшее установку флага прерывания, оно изменится по меньшей мере на единицу. Изменение состояния вывода ОС2 производится по тактовому сигналу таймера/счетчика и не синхронизируется с тактовым сигналом микроконтроллера.
Отдельно следует сказать о «взаимодействии» асинхронного режима таймера/счетчика Т2 с режимами пониженного энергопотребления микроконтроллера Power Down и Power Save.
Первое замечание касается использования прерываний от таймера/счетчика Т2 для «пробуждения» микроконтроллера. В этом случае при переводе микроконтроллера в режим Power Save после записи в регистры таймера/счетчика необходимо убедиться, что операция записи завершена (флаги TCN2UB, OCR2UB и TCR2UB сброшены). Наиболее важно это в случае, когда для «пробуждения» микроконтроллера используется прерывание от схемы сравнения. Дело в том, что во время записи в регистры TCNT2 и OCR2 функция сравнения выключена. Соответственно, если переход в режим Power Save произойдет до окончания операции записи в указанные регистры, прерывания от схемы сравнения никогда не произойдет и микроконтроллер не сможет выйти из спящего режима.
Вторая особенность связана с синхронизацией установки флагов прерываний от таймера/счетчика. При выходе микроконтроллера из режима Power Save по прерыванию от таймера/счетчика флаг соответствующего прерывания устанавливается только спустя 3 машинных цикла после запуска тактового генератора микроконтроллера. Во время этих циклов процессор выполняет команды, следующие за командой SLEEP, и только потом переходит к обработке прерывания (если оно разрешено).
Кроме того, необходимо быть осторожным при повторном переходе в режим Power Save после выхода из него по прерыванию от таймера/счетчика Т2. Дело в том, что в этом случае для запуска схемы прерываний требуется промежуток времени, равный одному периоду сигнала на выводе TOSC1. Если же промежуток времени между «пробуждением» и повторным переходом в режим Power Save будет меньше указанного, генерации прерывания и, соответственно, «пробуждения» микроконтроллера не произойдет. Для формирования задержки требуемой длительности рекомендуется после «пробуждения» микроконтроллера выполнить запись в какой-либо из регистров таймера/счетчика и дождаться завершения этой операции.
После подачи напряжения питания, а также после «пробуждения» микроконтроллера из режима Power Down таймер/счетчик рекомендуется использовать только спустя секунду после указанных событий. Эта задержка необходима для запуска тактового генератора таймера/счетчика. Соответственно при выходе из режима Power Down содержимое всех регистров таймера/счетчика Т2 можно считать потерянным (из-за нестабильности тактового сигнала во время запуска генератора).
Дата публикования: 2014-11-26; Прочитано: 338 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!