1 | void TIM1_Configuration(void)
|
2 | {
|
3 | TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
|
4 | TIM_OCInitTypeDef TIM_OCInitStructure;
|
5 | TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
|
6 |
|
7 | // TIM3 Configuration //
|
8 |
|
9 | TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
|
10 | TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV2;
|
11 | TIM_TimeBaseStructure.TIM_Period = 0xAFFF;
|
12 | TIM_TimeBaseStructure.TIM_Prescaler = 0x00FF;
|
13 | TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
|
14 | TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
|
15 |
|
16 | TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
|
17 | TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
|
18 | TIM_OCInitStructure.TIM_Pulse = 1750; //1750
|
19 | TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
|
20 | TIM_OC3Init(TIM3, &TIM_OCInitStructure);
|
21 |
|
22 | TIM_SelectOutputTrigger(TIM3, TIM_TRGOSource_Update);
|
23 |
|
24 | // TIM1 Configuration // 100 kHz
|
25 |
|
26 | TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV2; // 180MHz/2 = 90MHz
|
27 | TIM_TimeBaseStructure.TIM_Period = 89; // 90MHz/(89+1) = 1 MHz
|
28 | TIM_TimeBaseStructure.TIM_Prescaler = 19;
|
29 | TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
|
30 | TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0F;
|
31 | TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
|
32 |
|
33 | TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
|
34 | TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
|
35 | TIM_OCInitStructure.TIM_Pulse = 5;
|
36 | TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
|
37 | TIM_OC1Init(TIM1, &TIM_OCInitStructure);
|
38 |
|
39 | TIM_BDTRStructInit(&TIM_BDTRInitStructure);
|
40 | TIM_BDTRInitStructure.TIM_OSSIState = TIM_OSSIState_Disable;
|
41 | TIM_BDTRInitStructure.TIM_LOCKLevel = TIM_LOCKLevel_OFF;
|
42 | TIM_BDTRInitStructure.TIM_DeadTime = 0;
|
43 | TIM_BDTRInitStructure.TIM_Break = TIM_Break_Enable;
|
44 | TIM_BDTRInitStructure.TIM_BreakPolarity = TIM_BreakPolarity_Low;
|
45 | TIM_BDTRInitStructure.TIM_AutomaticOutput = TIM_AutomaticOutput_Enable;
|
46 | TIM_BDTRConfig(TIM1, &TIM_BDTRInitStructure);
|
47 |
|
48 | TIM_Cmd(TIM1, DISABLE);
|
49 | TIM_Cmd(TIM3, ENABLE);
|
50 |
|
51 | TIM_CtrlPWMOutputs(TIM1, ENABLE);
|
52 | TIM_CtrlPWMOutputs(TIM3, ENABLE);
|
53 | }
|