Ale » 28 окт 2015, 14:43
null писал(а):Ну вот, на 200гц гальваническая развязка отлично успевает. На осциллографе сигнал после нее.
Хотелось бы увеличить заполнение ШИМ немного больше 95%.
Ale Где это можно подправить? На мой страх и риск
Видео твое с ограничением...
Я посмотреть не могу.
Что касается максимального шима, то если у тебя стоят в настройках уже прописано вот так
#define
TIMER_PERIOD 20 // делитель для основного таймера, в результате частота ШИМ
#define
PWM_MAXW 20 // максимальная скважность ШИМ = PWM_MAXW/TIMER_PERIOD. (
то пока больше заполнение ШИМ сделать нельзя.
Тут вот какая ситуация. В прошивке молотит таймер-2 процессора с частотой срабатывания 4000 кгц. В его обработчике
ISR(TIMER2_OVF_vect) я собственно инкрементирую счетчик и сравниваю с заданной шириной импульса для каждого канала. И если ширина достигнута (даже максимальная), то я прямо в обработчике прерывания таймера СБРАСЫВАЮ пины ШИМ контроллера. А устанавливаю их уже в основном цикле программы после вычисления новых значений ШИМ. Вот время, потраченное на эти вычисления и есть время "принудительного" отключения сигнала ШИМ. Оно пока никак не нормировано и изменить его можно только изменив последовательность вычисления величины ШИМ для следующего шага.
При данной настройке следующий шаг ШИМ вычисляется с частотой 4000/TIMER_PERIOD = 200 гц. И максимальный период ШИМ тоже задан 20. Если бы я не отключал пин ШИМ в прерывании от таймера, то ты имел бы 100% максимальный ШИМ.
Но я подумаю над этим.