Guten Morgen, versuche nun schon ein paar Stunden den PWM auf PC6 per TIM8 zumlaufen zubringen. Habe ich was vergessen?
1 | //---------------------------------------------------------------------------
|
2 | void PWM_Init() |
3 | {
|
4 | GPIO_InitTypeDef GPIO_InitStructure; |
5 | TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; |
6 | TIM_OCInitTypeDef TIM_OCInitStructure; |
7 | |
8 | RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE); |
9 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; |
10 | GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; |
11 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; |
12 | GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; |
13 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; |
14 | GPIO_Init(GPIOC, &GPIO_InitStructure); |
15 | GPIO_PinAFConfig(GPIOC, GPIO_PinSource6, GPIO_AF_TIM8); // PC6 -> TIM8 Channel 1 |
16 | |
17 | // TIM8 Clock enable
|
18 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8, ENABLE); |
19 | |
20 | // Timer 8 Config PWM
|
21 | TIM_TimeBaseInitStructure.TIM_Period = 0xFF; |
22 | TIM_TimeBaseInitStructure.TIM_Prescaler = 127; |
23 | TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1; |
24 | TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; |
25 | TIM_TimeBaseInit(TIM8, &TIM_TimeBaseInitStructure); |
26 | |
27 | TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; |
28 | TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; |
29 | TIM_OCInitStructure.TIM_Pulse = 127; |
30 | TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; |
31 | TIM_OC1Init(TIM8, &TIM_OCInitStructure); |
32 | |
33 | TIM_OC1PreloadConfig(TIM8, TIM_OCPreload_Enable); |
34 | TIM_ARRPreloadConfig(TIM8, ENABLE); |
35 | TIM_Cmd(TIM8, ENABLE); |
36 | |
37 | TIM8->CCR1 = 63; |
38 | }
|
lg, markus