Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КР2.docx
Скачиваний:
0
Добавлен:
12.02.2026
Размер:
2.6 Mб
Скачать

Предделители.

Предделитель (prescaler) — это счётная электронная схема, используемая для уменьшения частоты входного колебания путём целочисленного деления. Т.Е. схема, которая кратно уменьшает частоту управляющего сигнала. Значение предделителя может иметь фиксированные значения: 1; 8; 64; 256 и 1024. Предделители есть у ядра и у таймера.

Для таймера значение предделителя можно изменить в регистре TCCR1B, за него отвечают три бита: CS12:CS11:CS10 (Clock Select), которые как раз и определяют коэффициент деления тактовых импульсов микроконтроллера.

Предделитель ядра можно изменить в регистре CLKPSR, однако перед этим нужно разблокировать настройки ядра, введя ключ доступа 0xD8 в регистр CCP.

Режимы работы таймера.

Режим Normal

Это наиболее простой режим работы таймеров, он же единственный режим в младших моделях семейства. В этом режиме счетный регистр функционирует как обычный суммирующий счетчик. По каждому импульсу тактового сигнала осуществляется инкремент счетного регистра. При переходе через значение $FF возникает переполнение, и счет продолжается со значения $00. В том же такте сигнала, в котором обнуляется регистр TCNTn, устанавливается в «1» флаг переполнения счетного регистра TOVn (Timer Overflow).

При равенстве счетного регистра и регистра сравнения устанавливается флаг прерывания OCFn и, если разряд OCIEn регистра TIMSK установлен в «1», генерируется соответствующее прерывание. Наряду с установкой флага при равенстве счетного регистра и регистра сравнения может изменяться состояние вывода OC0x микроконтроллера.

Режим CTC (сброс при совпадении)

В этом режиме счетный регистр функционирует как обычный суммирующий счетчик, инкремент которого осуществляется по каждому импульсу тактового сигнала на входе таймера. Однако максимально возможное значение счетного регистра и, следовательно, разрешающая способность счетчика определяется регистром сравнения OCR0A и OCR0B. После достижения значения, записанного в регистре сравнения, счет продолжается со значения 0x0000. В том же такте сигнала, в котором обнуляется счетный регистр, устанавливается флаг прерывания TOV0 регистра TIFR0.

Рисунок 1 – Схема прерываний

Режим работы Fast-PWM (быстрый ШИМ)

Рисунок 2 – Схема работы ШИМ

В этом режиме таймер работает до верхнего значения переполнения, после чего сбрасывается. При этом, когда таймер начинает свою работу, флаг сравнения установлен, а когда достигает значения регистра сравнения, то значение флага инвертируется. Порог переключения определяется регистром OCR0B. Таким образом получается некая широтно-импульсная модуляция, о которой написано далее. При этом, пин, на который будет выводиться ШИМ, можно определить, задав регистр маски таймера на этот пин.

Режим работы phase-correct Fast-PWM.

Рисунок 3 – Схема работы фазокорректного ШИМ

Логика работы примерно такая же, как и с Fast-PWM, за тем исключением, что, при достижении верхнего предела, таймер не сбрасывается, а начинает считать в обратную сторону, пока не достигнет нижнего предела, а потом снова изменяет направление счёта.

Фазокорректным он называется, потому что сигнал ШИМ симметричный относительно центра периода счётного сигнала, а значит при увеличении регистра сравнения его фаза не меняется: