![]() ![]() ![]() ![]() ![]()
Раздел: Документация
0 ... 122 123 124 125 126 127 128 ... 195 Как и в остальных режимах, при работе с какими-либо фиксированными значениями модуля счета для задания модуля рекомендуется использовать регистр захвата. При этом регистр OCR/iA может использоваться для формирования ШИМ-сигнала. Если же в процессе формирования ШИМ-сигнала его частота меняется очень часто, то для задания модуля счета рекомендуется использовать регистр сравнения. При достижении счетчиком максимального значения происходит смена направления счета, но счетчик остается в этом состоянии в течение одного периода сигнала с1кТл. В этом же такте устанавливается флаг \С¥п либо OCFaiA (в зависимости от того, какой из регистров используется для задания модуля счета). При достижении счетчиком минимального значения ($0000) направление счета опять изменяется. При этом устанавливается флаг прерывания ТОУл и производится обновление содержимого регистра сравнения. При равенстве содержимого счетного регистра и какого-либо регистра сравнения устанавливается соответствующий флаг OCFaiA/OCFaiB/OCFaiC соответствующего регистра. Одновременно изменяется состояние выхода блока сравнения ООА/ОСлВ/ОСлС. Как обычно, состояние вывода определяется содержимым битов СОМлл;1:СОМях0 регистров TCCR/iA (Табл. 7.34 и Рис. 7.25). Таблица 7.34. Управление выводами ОСлА/ОС1В/ОСлС в режиме Phase and Frequency Correct PWM
Примечание, л = 1, 3,4,51; х = А, В или С. Если сравнить Рис. 7.24 и 7.25, можно увидеть, что в режиме Phase and Frequency Correct PWM каждый период сигнала является полностью симметричным. Это следствие того, что обновление содержимого регистра сравнения происходит в момент достижения счетчиком минимального TCNTn ОСпх ОСпх ![]() J I П Г Устанавливается флаг прерывания OCFnx Устанавливается флаг прерывания ICFn (реж 8) или OCFnA (реж 9) Обновляется per OCRnx/ значение TOP Устанавливается флаг прерывания TOVn (COMnxl 0 = 2) j (COMnxl 0 = 3) Период п= 1,3 4,5 Рис. 7.25. Формирование ШИМ-сигнала в режиме Phase and Frequency Correct PWM значения. Поэтому время прямого счета всегда равно времени обратного счета, выходные импульсы симметричны, и соответственно частота генерируемого сигнала остается постоянной. Частота генерируемого сигнала определяется выражением /с /с clk I/0 ос* 2NTOP* где N— коэффициент деления предделителя (см. Табл. 7.24). Если значение, находящееся в регистре сравнения, равно $0000 или модулю счета (ТОР), то при следующем совпадении состояния счетчика и содержимого регистра сравнения выход схемы сравнения переключится в устойчивое состояние согласно Табл. 7.35. Таблица 7.35. Устойчивые состояния выхода схемы сравнения
Примечание, п = 1,3,4,5, х = А, В или С 7.7. Модулятор В микроконтроллерах ATmega640x/1280x/1281x/2560x/2561x появился новый блок, отсутствующий в других моделях, — модулятор (Output Compare Modulator). С его помощью можно формировать сигналы, модулированные несущей частотой. Для генерации сигнала несущей частоты используется блок сравнения А таймера/счетчика ТО, а для формирования модулирующего сигнала — блок сравнения С таймера/счетчика ТТ. Структурная схема модулятора показана на Рис. 7.26. Выходы упомянутых блоков сравнения (ОС 1С и ОСОА) задействуют один и тот же вывод микроконтроллера — 7-й бит порта В. Поэтому модулятор включается автоматически при одновременном разрешении работы этих блоков сравнения (т. е. при значении битов СОМлх1:0, отличном от 0). Тип модуляции («Логическое И» или «Логическое ИЛИ») определяется битом PORTB7 регистра PORTB. Упрощенная схема модулятора приведена на Рис. 7.27, а временные диаграммы работы модулятора — на Рис. 7.28. Таймер/счетчик 1 Таймер/счетчик 0 OC1C ОСОА ![]() OC1C/OC0A Рис. 7.26. Структурная схема модулятора Модулятор гт£Н ![]()
Рис. 7.27. Упрощенная схема модулятора 0 ... 122 123 124 125 126 127 128 ... 195 |