PWM invertiert trotz polarisations Flag

OP #2519302
Lesenswert?

Hallo

habe eine PWM implementiert für einen Servo.
leider wird diese PWM manchmal (oft) invertiert
und nur wenige male läuft sie richtig polarisiert.

ich habe das Polarisatrions-Flag gesetzt.

Ich möchte folgende Flanke

  |--|
--|  |-----------


erhalte aber diese Art von Flanke

--| |------------
  |-|

anbei meine PWM Initialisierung:
1
    // Update registers
2
    TIM1->EGR |= (1 << TIM_EGR_UG);
3
    
4
    // PWM1 Mode configuration: TIM 1, Channel 2
5
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;   
6
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
7
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
8
    TIM_OCInitStructure.TIM_Pulse = 5;  
9
    TIM_CtrlPWMOutputs(TIM1, ENABLE);
10
    TIM_OC2Init(TIM1, &TIM_OCInitStructure);
11
    TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable);
12
    
13
    // Enable the timer 
14
    TIM_Cmd(TIM1, ENABLE);

was muss ich noch einstellen?


lg
Gast #2519332
Lesenswert?

>Was für ein Stück Hardware ist das denn?

Ein STM32.

>habe eine PWM implementiert für einen Servo.
>leider wird diese PWM manchmal (oft) invertiert
>und nur wenige male läuft sie richtig polarisiert.

Sowas kann passieren wenn man PWM Werte ins Register reinprügelt
ohne abzuwarten das sie auch ausgegeben werden konnten.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren