|
STM32f4 PWM проблема с первым импульсом |
|
|
|
Jul 9 2015, 09:40
|
Частый гость
 
Группа: Участник
Сообщений: 142
Регистрация: 10-11-12
Пользователь №: 74 318

|
adnega, как это есть рабочий код? Вот его последнее сообщение (жирным выделено мной): Цитата(EmbedElektrik @ Jul 8 2015, 15:50)  Спасибо, идея инверсии понятна. У меня заработало. Но непонятки с моей изначальной инициализацией остались С управлением регистрами напрямую все равно этот импульс пролазит.
--------------------
|
|
|
|
|
Jul 9 2015, 10:03
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(Golikov A. @ Jul 9 2015, 12:45)  я так понял инвертировали ШИМ и все работает, а в старом варианте даже с прямым управлением регистрами пролазит импульс. Я так понимаю эти сообщения. Я тоже так понял. Цитата(Golikov A. @ Jul 9 2015, 12:45)  Природа импульса как я понимаю в том что на время инициализации ШИМ как раз выдает 1, потом сбрасывается обновлением для принятия новых настроек, и работает штатно. PWM1 устанавливается в единичку в момент update. Если инициализация приводит к update, то на выходе будет единичка. Меня больше волнует вопрос: кто сбрасывает вывод в ноль после формирования пачки импульсов? У меня получается стабильная единичка на выходе в конце.
|
|
|
|
|
Jul 10 2015, 06:49
|

Частый гость
 
Группа: Свой
Сообщений: 121
Регистрация: 30-07-08
Из: Тверь, Россия
Пользователь №: 39 321

|
Вобщем господа я забил на эту проблему - тупо перевожу на время инициализации вывод в GPIO. Вобщем STM прекрасно выдает последовательность. На картинке серия из 6ти импульсов со скважностью 25 50 и 75% (попарно). Внизу импульсы гашения со второго канала таймера. Если кто разберется как победить инициализацию - буду признателен.
Эскизы прикрепленных изображений
|
|
|
|
|
Jul 10 2015, 09:25
|
Частый гость
 
Группа: Участник
Сообщений: 142
Регистрация: 10-11-12
Пользователь №: 74 318

|
Цитата(EmbedElektrik @ Jul 10 2015, 11:49)  Вобщем господа я забил на эту проблему - тупо перевожу на время инициализации вывод в GPIO Так вам тут же написали - сразу после инициализации ШИМ выдаёт 1, поэтому импульс и вылазит до момента присвоения TIM2->CNT=15; Можно вместо перевода в GPIO и TIM2->CNT=15 просто при инициализации задать длительность ШИМа в 0, а потом когда, он понадобится, выставить нужное значение.
--------------------
|
|
|
|
|
Jul 10 2015, 10:14
|

Частый гость
 
Группа: Свой
Сообщений: 121
Регистрация: 30-07-08
Из: Тверь, Россия
Пользователь №: 39 321

|
Цитата(ArtDenis @ Jul 10 2015, 12:25)  Так вам тут же написали - сразу после инициализации ШИМ выдаёт 1, поэтому импульс и вылазит до момента присвоения TIM2->CNT=15;
Можно вместо перевода в GPIO и TIM2->CNT=15 просто при инициализации задать длительность ШИМа в 0, а потом когда, он понадобится, выставить нужное значение. я уже сейчас не помню, потому что чего я только с таймером не делал, но при CNT=0 ширина первого импульса была больше чем должна быть. Вобщем, возможно позже вернусь к этому вопросу, а пока надо деньги зарабатывать
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|