STM32 Timer4 Update Event

Gast #2297844
Hallo!

Mich ärgert mal wieder mein stm32f103rbt6...

Ich möchte Timer 4 so konfigurieren, dass er an Channel 1 eine PWM 
ausgibt.
1
void TIM4_Configuration(void)
2
{
3
  /* Compute the prescaler value */
4
  PrescalerValue = (uint16_t) (SystemCoreClock / 8000000) - 1;
5
  /* Time base configuration */
6
  TIM_TimeBaseStructure.TIM_Period = 1024;
7
  TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue;
8
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;
9
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
10

11
  TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
12

13
  /* PWM1 Mode configuration: Channel2 */
14
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
15
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
16
  TIM_OCInitStructure.TIM_Pulse = timepulse;
17
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
18
  //TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;
19

20
  TIM_OC1Init(TIM4, &TIM_OCInitStructure);
21

22
  TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);
23

24
  TIM_ARRPreloadConfig(TIM4, ENABLE);
25

26
  /* TIM3 enable counter */
27
  TIM_Cmd(TIM4, ENABLE);
28
}

Timer läuft auch super, jetzt möchte ich aber den Duty Cycle im Programm 
anpassen. Dazu wird timepulse verändert und ein Update Event generiert.
1
TIM_GenerateEvent(TIM4,TIM_EventSource_Update);

Leider findet aber keine Refresh des Wertes statt. Man sieht deutlich, 
dass der Timer neu initialisiert wird (flackern auf dem Oszi) aber eben 
der Duty Cycle ändert sich nicht. Hat jemand eine Idee? Ist das 
vielleicht der falsche Befehl?

Gruß und Dank fürs Lesen

vaid
Gast #2297902
Hat sich erledigt.
Manchmal macht es Sinn sowas einfach nieder zu schreiben... ;-)

Ich habe nur die Variable geändert, den Wert aber nicht ins Register 
übertragen.
Und nun auch den tollen Befehl
1
TIM_SetCompare1(TIM4,timepulse);
gefunden.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.