Hallo Leute, hab mal wieder ein Problem mit meinem stm32f03... Ich hab hier ein 4MHz PWM mit 100Pulsen TIM14 initalisiert und möchte nun 80 Pulse ein high Signal an PA7 ausgeben. Ich hab jetzt alles 10mal durch geschaut aber ich seh den Fehler nicht... Vielleicht mag ja mal einer kurz über meinen Code drüber schauen. Vielen Dank. Grüße Steph
Hallo Steph, seh da jetzt nicht unbedingt einen Fehler. Probier mal so, vielleicht gehts ja.
1 | void init_Timer(void) |
2 | {
|
3 | TIM_TimeBaseInitTypeDef TIM_TimeBase_InitStructure; |
4 | |
5 | //Takt für Timer 14 einschalten
|
6 | RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14, ENABLE); |
7 | //Timer 14 konfigurieren
|
8 | TIM_TimeBase_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1; |
9 | TIM_TimeBase_InitStructure.TIM_CounterMode = TIM_CounterMode_Up; |
10 | TIM_TimeBase_InitStructure.TIM_Period = 100; //Perioden 4/100=> 40kHz |
11 | TIM_TimeBase_InitStructure.TIM_Prescaler = 12; //Vorteiler 48/12 => 4MHz |
12 | TIM_TimeBase_InitStructure.TIM_RepetitionCounter = 0; |
13 | |
14 | TIM_TimeBaseInit(TIM14, &TIM_TimeBase_InitStructure); |
15 | |
16 | //PWM konfigurieren
|
17 | TIM_OCInitTypeDef outputChannelInit; |
18 | |
19 | outputChannelInit.TIM_OCMode = TIM_OCMode_PWM1; |
20 | outputChannelInit.TIM_OutputState = TIM_OutputState_Enable; |
21 | outputChannelInit.TIM_OutputState = TIM_OutputNState_Enable; |
22 | outputChannelInit.TIM_OCPolarity = TIM_OCPolarity_High; |
23 | outputChannelInit.TIM_OCPolarity = TIM_OCNPolarity_High; |
24 | outputChannelInit.TIM_OCIdleState = TIM_OCIdleState_Reset; |
25 | outputChannelInit.TIM_OCNIdleState = TIM_OCNIdleState_Set; |
26 | outputChannelInit.TIM_Pulse = 80; //80Pulse von 100 high |
27 | |
28 | TIM_OC1Init(TIM14, &outputChannelInit); |
29 | TIM_OC1PreloadConfig(TIM14, TIM_OCPreload_Enable); |
30 | |
31 | GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_TIM14); |
32 | |
33 | // Timer14 einschalten
|
34 | TIM_Cmd(TIM14, ENABLE); |
35 | }
|
Lg Gabriel
Danke für die Antwort Gabriel, hab mir den PGIO_AF noch einmal genau angesehen und bei mir muss der GPIO_AF_4 sein. Ausserdem war noch ein kleiner fehler OutputState gabs 2 mal OutputNState dagegen garnicht... Naja soweit so gut nun funktioneirt er :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.