Hallo
Ich verwende den STM32F105RBT6. Meine Timer Initialisierung sieht wie
folgt aus:
1 | void init_Timer10(void)
|
2 | {
|
3 | TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
|
4 |
|
5 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM10, ENABLE);
|
6 |
|
7 | TIM_TimeBaseStructure.TIM_Period = 100-1; // 72000hz
|
8 | TIM_TimeBaseStructure.TIM_Prescaler = 720-1; // 1000Hz
|
9 | TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
|
10 | TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
|
11 | TIM_TimeBaseInit(TIM10, &TIM_TimeBaseStructure);
|
12 |
|
13 | }
|
Beim Aufruf von TIM_TimeBaseInit
1 | void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct)
|
2 | {
|
3 | uint16_t tmpcr1 = 0;
|
4 |
|
5 | /* Check the parameters */
|
6 | assert_param(IS_TIM_ALL_PERIPH(TIMx));
|
7 | assert_param(IS_TIM_COUNTER_MODE(TIM_TimeBaseInitStruct->TIM_CounterMode));
|
8 | assert_param(IS_TIM_CKD_DIV(TIM_TimeBaseInitStruct->TIM_ClockDivision));
|
9 |
|
10 | tmpcr1 = TIMx->CR1;
|
Springt das Programm beim Ausführen der Codezeile tmpcr1 = TIMx->CR1 in
den Default_Handler.
Den Fehler konnte ich bisher nicht finden. Ich verwende zusätzlich TIM2,
TIM3 und TIM4 mit ähnlicher Initialisierung. Da funktioniert es.
Hat vielleicht hier jemand eine Idee woher das Problem kommt?
Danke schon mal.
Eure Krähe