Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
Шаг 6. Осваиваем все возможности микроконтроллера ATtiny23 13 447 Принудительное изменение сигнала на выходе совпадения В режимах таймера без ШИМ сигнал на выходе совпадения может быть изменен путем записи единицы в бит принудительного измене ния (FOClx). Принудительное изменение выхода совпадения не уста навливает флаг OCFlx и не перезагружает таймер. Но сигнал на выходе ОС1х будет изменяться таким же образом, как при реальном совпаде нии. То есть поведение выхода ОС1х будет зависеть от установки битов СОМ 1x1:0 (сигнал на выходе будет установлен, сброшен или изменит свое значение на противоположное). Блокировка режима совпадения в момент записи регистра TCNT1 Каждый раз, когда центральный процессор производит запись в регистр TCNT1, любое событие «Совпадение», которое происходит в сле дующем тактовом цикле таймера, блокируется даже в том случае, если таймер остановлен. Эта особенность позволяет записывать в регистр OCRlx то же самое значение, что и в регистр TCNT1, не вызывая запрос на прерывание, если включен тактовый сигнал таймера/счетчика. Использование модуля совпадения В любом режиме после записи нового значения в регистр TCNT1 в течение одного периода тактового сигнала блокируется работа модуля совпадения. Это может стать причиной неправильной работы модуля совпадения в момент изменения TCNT1 независимо от того, находится ли таймер/счетчик в режиме счета или нет. Если значение, записанное в TCNT1, равно значению, записанному в OCRlx, то операция сравнения будет пропущена. Это приведет к сбою в работе генератора сигналов. Нельзя записывать в регистр TCNT1 значе ние, равное ТОР, в режимах ШИМ с переменным значением ТОР. В этом случае событие «Совпадение» для значения ТОР будет проигнорировано, и счетчик продолжит счет до значения OxFFFF. Точно так же нельзя запи сывать в TCNT1 значение, равное BOTTOM, когда счетчик работает в режиме обратного счета. Настройка выхода ОС1х должна быть выполнена перед тем, как соот ветствующая линия порта будет сконфигурирована как выход. Самый простой способ установить нужное значение на выходе ОС1х — исполь зовать бит принудительной установки FOClx в режиме Normal. Регистры ОС1х сохраняют свое значение при любых переключениях режимов генератора сигналов.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==