Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Fast PWM в AVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
moonrock
Понадобилось сделать два противофазных ШИМ выхода в аврке (мега48), обязательно с Deadtime. Думаю взять и включать по очереди каналы А и В, по прерываниям. Читаю пдф и не могу понять, что же будет если выбрать WGM2:0 = b111. Вроде как в этом случае OCR0A хранит максимальное значение счетчика. Тогда с чем сравнивается канал А? Будет работать только OC0B? Или вообще ничего работать не будет?. cranky.gif Подскажите кто возился с этим!
Спрашиваю потому что ни одной платы под рукой нет, так бы быстрее выяснил.
Serg_greS
При записи WGM2:0 = b111 включается FastPWM mode 7, в котором потолком является значение OCR0A, обновление OCR0A происходит в ТОР (т.е при достижении OCR0A), флаг переполнения выставляется при достижении OCR0A. Еще надо знать что записано в COMxA1:0, от этого будет зависеть что делать при достижении ТОР`а
moonrock
Так это написано и понятно. Я о другом: с чем канал А сравнивается?
Serg_greS
с значением OCR0A
SergSit
Можно взять не таймер0 а таймер 1. Режим Fast PWM top=ICR1. Т.е. максимальное значение будет определяться регистром ICR1. Но этот режим рекомендуют применять когда частоту ШИМ(соотвественно содержимое регистра ICR1) не надо часто менять. В регмтры сравнения OCRA OCRB записать равные чиcла. Только установить у канала А не инвертируемый ШИМ, а канала В инвентируемый.
pokos
Цитата(SergSit @ Jul 24 2006, 13:06) *
Только установить у канала А не инвертируемый ШИМ, а канала В инвентируемый.

Тогда не будет дедтайма..... Чтобы он был нужно держать разницу между OCRA и OCRB. Причём, изменение значений в них делать в определённой последовательности или в определённое время, чтобы при изменении импульсы случайно не перекрылись.
SergSit
Насколько я знаю содержимое этих регистров(OCRA OCRB) в этом режиме обновляется когда счетний TCNT0 регистр достигнет максимума. Поэтому задний фронт можно еще сдвинуть(имея разные значения OCRA OCRB) , но нельзя сдвинуть передний , т.к он привязан к моменту когда счетный регистр достигает максимума.
С деттаймов наверно не получиться.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.