Hallo zusammen,
ich habe bisher den Timer 6 bei vielen M0 genutzt, bisher ohne jegliche
Probleme.
Heute morgen den kleinen STM32F030F4P6 genommen. Timer 6 löst keinerlei
Überlaufinterrupt aus. Lt. Datenblatt ist der Timer 6 auch bei diesem
Modell uneingeschränkt nutzbar. Was mache ich hier falsch...stehe
irgendwie auf dem Schlauch. Fehlt eine Clockfreigabe?
Hier mein Code
1 | void TIM6_DAC_IRQHandler(void)
|
2 | { //1ms / 1KHz
|
3 | TIM_ClearITPendingBit(TIM6, TIM_IT_Update);//Flag zurück setzen
|
4 | test2++;
|
5 | if (TimeDelayTemp > 0)
|
6 | TimeDelayTemp--;
|
7 | }
|
1 |
|
2 | //*************************************************
|
3 | //*** TIMEREINSTELLUNGEN ALLGEMEIN ***
|
4 | //*************************************************
|
5 |
|
6 | TIM_TimeBaseInitTypeDef TIM_TimeBase_InitStructure;
|
7 | TIM_OCInitTypeDef TIM_OCInitStruct;
|
8 |
|
9 | //*************************************************
|
10 | //*** allgemeiner Zeitgeber Timer 6 ***
|
11 | //*************************************************
|
12 | NVIC_InitTypeDef NVIC_InitStructure;
|
13 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_DBGMCU, ENABLE);
|
14 | DBGMCU_APB1PeriphConfig(DBGMCU_TIM6_STOP, ENABLE);
|
15 |
|
16 | RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);
|
17 |
|
18 | TIM_TimeBase_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
|
19 | TIM_TimeBase_InitStructure.TIM_CounterMode = TIM_CounterMode_Up;
|
20 | TIM_TimeBase_InitStructure.TIM_Period = 99;
|
21 | TIM_TimeBase_InitStructure.TIM_Prescaler = 479; //1ms pro Interruptaufruf
|
22 | TIM_TimeBaseInit(TIM6, &TIM_TimeBase_InitStructure);
|
23 |
|
24 | NVIC_InitStructure.NVIC_IRQChannel = TIM6_DAC_IRQn;
|
25 | NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
|
26 | NVIC_Init(&NVIC_InitStructure);
|
27 | TIM_ITConfig(TIM6, TIM_IT_Update, ENABLE);
|
28 |
|
29 | TIM_Cmd(TIM6, ENABLE);
|
bin für wirklich jede Hilfe äußerst dankbar. Bin nahezu am Verzweifeln
Gruss
soundmachine