реклама на сайте
подробности

 
 
> Fast PWM в AVR, недопонял
moonrock
сообщение Jul 20 2006, 21:55
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 166
Регистрация: 24-03-05
Из: Санкт-Петербург
Пользователь №: 3 661



Понадобилось сделать два противофазных ШИМ выхода в аврке (мега48), обязательно с Deadtime. Думаю взять и включать по очереди каналы А и В, по прерываниям. Читаю пдф и не могу понять, что же будет если выбрать WGM2:0 = b111. Вроде как в этом случае OCR0A хранит максимальное значение счетчика. Тогда с чем сравнивается канал А? Будет работать только OC0B? Или вообще ничего работать не будет?. cranky.gif Подскажите кто возился с этим!
Спрашиваю потому что ни одной платы под рукой нет, так бы быстрее выяснил.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
Serg_greS
сообщение Jul 21 2006, 04:40
Сообщение #2


Частый гость
**

Группа: Новичок
Сообщений: 85
Регистрация: 13-01-05
Из: Москва
Пользователь №: 1 922



При записи WGM2:0 = b111 включается FastPWM mode 7, в котором потолком является значение OCR0A, обновление OCR0A происходит в ТОР (т.е при достижении OCR0A), флаг переполнения выставляется при достижении OCR0A. Еще надо знать что записано в COMxA1:0, от этого будет зависеть что делать при достижении ТОР`а
Go to the top of the page
 
+Quote Post
moonrock
сообщение Jul 21 2006, 20:17
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 166
Регистрация: 24-03-05
Из: Санкт-Петербург
Пользователь №: 3 661



Так это написано и понятно. Я о другом: с чем канал А сравнивается?
Go to the top of the page
 
+Quote Post
Serg_greS
сообщение Jul 24 2006, 04:07
Сообщение #4


Частый гость
**

Группа: Новичок
Сообщений: 85
Регистрация: 13-01-05
Из: Москва
Пользователь №: 1 922



с значением OCR0A
Go to the top of the page
 
+Quote Post
SergSit
сообщение Jul 24 2006, 09:06
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 173
Регистрация: 9-12-05
Пользователь №: 12 031



Можно взять не таймер0 а таймер 1. Режим Fast PWM top=ICR1. Т.е. максимальное значение будет определяться регистром ICR1. Но этот режим рекомендуют применять когда частоту ШИМ(соотвественно содержимое регистра ICR1) не надо часто менять. В регмтры сравнения OCRA OCRB записать равные чиcла. Только установить у канала А не инвертируемый ШИМ, а канала В инвентируемый.
Go to the top of the page
 
+Quote Post
pokos
сообщение Jul 24 2006, 09:29
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 270
Регистрация: 29-06-06
Пользователь №: 18 445



Цитата(SergSit @ Jul 24 2006, 13:06) *
Только установить у канала А не инвертируемый ШИМ, а канала В инвентируемый.

Тогда не будет дедтайма..... Чтобы он был нужно держать разницу между OCRA и OCRB. Причём, изменение значений в них делать в определённой последовательности или в определённое время, чтобы при изменении импульсы случайно не перекрылись.
Go to the top of the page
 
+Quote Post
SergSit
сообщение Jul 24 2006, 10:37
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 173
Регистрация: 9-12-05
Пользователь №: 12 031



Насколько я знаю содержимое этих регистров(OCRA OCRB) в этом режиме обновляется когда счетний TCNT0 регистр достигнет максимума. Поэтому задний фронт можно еще сдвинуть(имея разные значения OCRA OCRB) , но нельзя сдвинуть передний , т.к он привязан к моменту когда счетный регистр достигает максимума.
С деттаймов наверно не получиться.

Сообщение отредактировал SergSit - Jul 24 2006, 10:37
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01371 секунд с 7
ELECTRONIX ©2004-2016