1 | //local variable definition
|
2 | TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
|
3 | TIM_OCInitTypeDef TIM_OCInitStructure;
|
4 | uint16_t PrescalerValue = 0;
|
5 | NVIC_InitTypeDef NVIC_InitStructure;
|
6 |
|
7 | /* TIM3 clock enable */
|
8 | RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
|
9 |
|
10 | /* Enable the TIM3 gloabal Interrupt */
|
11 | NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
|
12 | NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
|
13 | NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
|
14 | NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
|
15 | NVIC_Init(&NVIC_InitStructure);
|
16 |
|
17 | /* Initialize Leds mounted on STM32F4-Discovery board */
|
18 | STM32F4_Discovery_LEDToggle(LED4);
|
19 | STM32F4_Discovery_LEDToggle(LED3);
|
20 |
|
21 | /* Turn on LED4, LED3, LED5 and LED6 */
|
22 | STM32F4_Discovery_LEDToggle(LED4);
|
23 | STM32F4_Discovery_LEDToggle(LED3);
|
24 |
|
25 |
|
26 | /* Compute the prescaler value */
|
27 | PrescalerValue = (uint16_t) ((SystemCoreClock / 2) / 50000000) - 1;
|
28 |
|
29 | /* Time base configuration */
|
30 | TIM_TimeBaseStructure.TIM_Period = 65535;
|
31 | TIM_TimeBaseStructure.TIM_Prescaler = 0;
|
32 | TIM_TimeBaseStructure.TIM_ClockDivision = 0;
|
33 | TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
|
34 | TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
|
35 |
|
36 | /* Prescaler configuration */
|
37 | TIM_PrescalerConfig(TIM3, PrescalerValue, TIM_PSCReloadMode_Immediate);
|
38 |
|
39 | /* Output Compare Timing Mode configuration: Channel1 */
|
40 | TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Timing;
|
41 | TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
|
42 | TIM_OCInitStructure.TIM_Pulse = CCR1_Val; //CCR1_Val wird an anderer Stelle initialisiert
|
43 | TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
|
44 | TIM_OC1Init(TIM3, &TIM_OCInitStructure);
|
45 | TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Disable);
|
46 |
|
47 | /* TIM Interrupts enable */
|
48 | TIM_ITConfig(TIM3, TIM_IT_CC1 , ENABLE);
|
49 |
|
50 | /* TIM3 enable counter */
|
51 | TIM_Cmd(TIM3, ENABLE);
|