Forum: Mikrocontroller und Digitale Elektronik PWM invertiert trotz polarisations Flag


von Kerstin M. (kerstin)


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

von ein Gast (Gast)


Lesenswert?

Da wirst du wohl noch ein paar Worte über das Drumrum verlieren müssen.

Welcher Prozessor, welche Library, welche 
Programmiersprache/Entwicklungssystem ?

von Axel J. (axeljaeger)


Lesenswert?

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

von Kerstin M. (kerstin)


Lesenswert?

Oh es tut mir leid.

STM32F103RB

Entwicklungsboard STM32-SK von IAR Debugger J-Link von IAR und IDE IAR 
Workbench.  Sprache C
lg

von holger (Gast)


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.

von Kerstin M. (kerstin)


Lesenswert?

wie lange (ms) sollte man da warten?

von Axel J. (axeljaeger)


Lesenswert?

Das sollte im Datenblatt stehen. Alternativ ein funktionierendes 
Minimalbeispiel suchen und mit dem eigenen Code vergleichen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.