Hallo zusammen,
ich habe eine Frage bzgl. der PWM Erzeugung im STM32L4. Ich möchte gern
3 RGB LED gemultiplext mit jeweils 3 PWM Kanälen ansteuern. habe aber
ein Problem mit der PWM.
Im angehängten Bild seht ihr in den Farbeb Blau/Grün und Rot die
Ansteuerung der Anoden der LED und Gelb die PWM auf einer Kathode. Das
Problem was ich habe ist, das ich die PWM nicht rechtzeitig ein und
ausgeschaltet bekomme.
Moin,
Christopher J. schrieb:> Ich denke, dass da wieder mal das ARPE-Bit gesetzt ist und somit die> CCR-Werte erst mit dem nächsten Update-Event übernommen werden.
so, wie ich die Timer verstehe, ist das ARPE bit nur fuer das ARR
Register zustaendig. Fuer die Compare Register ist das zugehoerige
Preload bit im config Register TIMx_CCMR1 zustaendig.
Ausm RefMan:
OC1PE: Output compare 1 preload enable
0: Preload register on TIMx_CCR1 disabled. TIMx_CCR1 can be written at
anytime, the new value is taken in account immediately.
1: Preload register on TIMx_CCR1 enabled. Read/Write operations access
the preload register. TIMx_CCR1 preload value is loaded in the active
register at each update event.
Kann mich aber auch irren, den STM32L4 hab ich noch am Wickel gehabt.
Nur mal im RefMan geschmökert.
Darth Moan schrieb:> so, wie ich die Timer verstehe, ist das ARPE bit nur fuer das ARR> Register zustaendig. Fuer die Compare Register ist das zugehoerige> Preload bit im config Register TIMx_CCMR1 zustaendig.
Jap, du hast natürlich recht, ARPE ist nur für ARR und für CCR ist OCPE.
Das hatte ich vermischt. Der Effekt der "Preload Enable" Bits ist
jedenfalls jeweils der, dass wenn es aktiv ist, der Wert für ARR oder
CCR zunächst in ein Shadow-Register geschrieben wird und erst beim
nächsten Update-Event aktiv wird.