Wpis z mikrobloga

Generuje przebieg PWM na pinie stm32f4 z timera 1. Chce okresowo włączać i wyłączać kanał z tym przebiegiem PWM. Zmieniam więc w pętli bit CC1E w rejestrze CCER:
TIM1->CCER |= TIM CCER CC1E
10ms
TIM1->CCER &= ~TIM CCER CC1E
20ms
Chce jednak aby po wyzerowaniu bitu CC1E(wyłącznie przebiegu PWM na kanale 1), pin przechodził w stan niski i się tak utrzymywał przez te 20ms. Nie mogę znaleźć w RM odpowiedzialnego rejestru. Pewnie to wina mojego przeciętnego angielskiego... albo niezrozumienia problemu. Długo to męczę i nie wychodzi( ͡° ʖ̯ ͡°)

#mikrokontrolery #stm32 #programowanie
Pobierz sobczi11 - Generuje przebieg PWM na pinie stm32f4 z timera 1. Chce okresowo włączać i...
źródło: comment_oRPrLymqCGfmrdTChy6jhOpMc25IGeL3.jpg
  • 9
@wojcikrs: Staram się robić przy pomocy rejestrów, ale jak opanuje jakieś zagadnienie to korzystam z bibliotek. Konfiguracje PWM robię bez bibliotek.
@Fox_Murder: Jeśli wyzeruje częstotliwość PWM to ona będzie dotyczyć wszystkich 4 kanałów? Tak to rozumiem. A mi jest potrzebne włączanie/wyłączenie jednego kanału, kiedy np. drugi i trzeci normalnie pracują. Wszystko na TIM1.
@Fox_Murder: Dla wypełnienia równego zero, w momencie gdzie powinien być przebieg PWM, mam cały czas stan wysoki. PWM się nie pojawia, a przed nim i za nim jest domyślnie stan wysoki, który próbuje przestawić.

Tutaj mogę się mylić wiec proszę mnie poprawić.
PWM generuje przy pomocy timera 1. Mam na nim do dyspozycji 4 kanały. Częstotliwość taktowania timera jest ustawiana przy pomocy rejestrów PSC i ARR i dotyczy ona wszystkich 4
Dla wypełnienia równego zero, w momencie gdzie powinien być przebieg PWM, mam cały czas stan wysoki. PWM się nie pojawia, a przed nim i za nim jest domyślnie stan wysoki, który próbuje przestawić.


@sobczi11: rzeczwyiście durnota straszna. 0% to 0% i już. Powinno być zero logiczne.
A zobacz czy w bitach ustawień nie ma ustawienia jak się ma zachowywać PWM gdy np nie włączony. Przykładowo w SPI są opcje czy reaguje