1 | /* -----------------------------------------------------------------------
|
2 | TIM1 Configuration: generate 2 PWM signals with 2 different duty cycles:
|
3 | TIM1CLK = 24 MHz, Prescaler = 23, TIM1 counter clock = 1 MHz
|
4 | TIM1 ARR Register = 19999=> TIM1 Frequency = TIM1 counter clock/(ARR + 1)
|
5 | TIM1 Frequency = 50 Hz.
|
6 | TIM1 Channel1 pulse lenght = TIM1->CCR1 value gives servo between 1000 and 2000 µs
|
7 | TIM1 Channel4 pulse lenght = TIM1->CCR4 value gives servo between 1000 and 2000 µs
|
8 | TIM1 update interrupt is enabled, for slow update servoposition !!
|
9 | Important : N_output TIM1 is on the same pin as remap TIM15, has to be disabled !!
|
10 | ----------------------------------------------------------------------- */
|
11 | TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
|
12 | TIM_OCInitTypeDef TIM_OCInitStructure;
|
13 | /* Time base configuration TIM1*/
|
14 | TIM_TimeBaseStructure.TIM_Period = 19999;//PWM freq. = 1MHz/20000 = 50Hz , nu 100 Hz,periode=10 ms
|
15 | TIM_TimeBaseStructure.TIM_Prescaler = 23;// Timer loopt aan 24 MHz/24 = 1MHz
|
16 | TIM_TimeBaseStructure.TIM_ClockDivision = 0;
|
17 | TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
|
18 | TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //opgelet, interfereert met TIM15
|
19 | /* PWM1 Mode configuration: TIM 1, Channel1 */
|
20 | TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
|
21 | TIM_OCInitStructure.TIM_Pulse = 1000;//init value van servo 1, zie ook servo functie
|
22 | TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
|
23 | TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
|
24 | TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;//nodig voor TIM15 remap !!
|
25 | TIM_OC1Init(TIM1, &TIM_OCInitStructure);
|
26 | TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Disable);//geen preload, dus direct in update in register !!!
|
27 | /* PWM1 Mode configuration: TIM 1, Channel4 */
|
28 | TIM_OCInitStructure.TIM_Pulse = 2000;//init value van servo 2, zie ook servo functie
|
29 | TIM_OC4Init(TIM1, &TIM_OCInitStructure);
|
30 | TIM_OC4PreloadConfig(TIM1, TIM_OCPreload_Disable);
|