Hallo Ich mache gerade einige versuche mit dem STM32F4 Discovery. Mit dem Timer 2 möchte ich mit einer definierten Frequenz einen Pin toggeln. Mit der folgenden initialisierung messe ich am Pin eine Frequenz von 32Hz, sollte doch aber 50hz sein ? SystemCoreClock ist 168mhz, die Frequenz vom Timer2 sollte dementsprechend 42mhz sein ? was genau mache ich falsch ?
1 | //***** Setup Timer 2 ******************************
|
2 | // Takt für Timer 2 einschalten
|
3 | RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); |
4 | |
5 | // Timer2 konfigurieren
|
6 | TIM_TimeBaseInitTypeDef TIM_TimeBase_InitStructure; |
7 | TIM_TimeBase_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1; |
8 | TIM_TimeBase_InitStructure.TIM_CounterMode = TIM_CounterMode_Up; |
9 | TIM_TimeBase_InitStructure.TIM_Period = 42000000/100; |
10 | TIM_TimeBase_InitStructure.TIM_Prescaler = 0; |
11 | TIM_TimeBaseInit(TIM2, &TIM_TimeBase_InitStructure); |
12 | TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); |
13 | |
14 | // Timer2 einschalten
|
15 | TIM_Cmd(TIM2, ENABLE); |
16 | |
17 | // Interruptcontroller konfigurieren
|
18 | NVIC_InitTypeDef NVIC_InitStructure; |
19 | NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; |
20 | NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; |
21 | NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F; |
22 | NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F; |
23 | NVIC_Init(&NVIC_InitStructure); |