Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
454 Микроконтроллеры AVR от азов программирования... и устанавливается в момент совпадения в том случае, когда счетчик работает на увеличение. В инвертирующем режиме все происходит наоборот. Использование режима пилы с двухсторонним наклоном приводит к тому, что максимальная частота выходного сигнала в два раза ниже, чем в режиме с одним наклоном. Но благодаря симметричному изменению фазы при работе с двухсторонним наклоном этот режим более предпо чтителен для управления электромотором. Коэффициент пересчета для phase correct PWM может иметь в одно из трех фиксированных значений (как 8-, 9- или 10-разрядный счетчик), а также может определяться регистрами ICR1 или OCR1A. Минимально возможный коэффициент пересчета соответствует 2-разрядному счетчику (при записи в регистр ICR1 или OCR1A значения 0x0003). Максимальный коэффициент пересчета соответствует полному 16-разрядному счетчику (в регистр ICR1 или OCR1A записывается зна чение МАХ). Коэффициент пересчета PWM в битах может быть вычис лен с использованием следующего уравнения: о _log(TOP+1) Ярсяш --- | О д(2) • В режиме phase correct PWM значение счетного регистра увеличива ется до тех пор, пока не достигнет значения ТОР. А это либо одно из фик сированных значений ОхООҒҒ, ОхОІҒҒ или ОхОЗҒҒ (WGM13:0 = 1,2 или 3), либо значение регистра ICR1 (WGM13:0 = 10), либо значение регистра OCR1A (WGM13:0 =11). Когда счетчик достигнет значения ТОР, он изме няет направление счета. Значение TCNT1 будет равно ТОР лишь в тече ние одного тактового цикла. Флаг переполнения таймера/счетчика (TOV1) устанавливается каж дый раз, когда счетчик достигает значения BOTTOM. Если регистр OCR1A или ICR1 используется для определения значения ТОР, то флаг ОС1А или ICF1, соответственно, устанавливаются в том же самом такто вом цикле, что и флаг TOV1. Регистры OCRlx имеют двойную буферизацию и обновляются в тот момент, когда счетчик достигнет значения ТОР. Флаги прерывания могут использоваться для генерации прерываний в момент, когда счетчик достигает значения ТОР или BOTTOM. В случае программного измене ния значения ТОР необходимо гарантировать, что новое значение ТОР выше или равно значению каждого из регистров совпадения. Если новое значение ТОР будет ниже, чем значение одного из реги стров совпадения, то момент совпадения никогда не произойдет. Следует заметить, что при использовании одного из фиксированных
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==