Forum: Mikrocontroller und Digitale Elektronik TIM6 und NVIC beim STM32F100


von Christian (Gast)


Lesenswert?

Moin!

Ich versuche gerade, den Timer 7 beim ST32F100 (auf dem 
STM32Discoveryboard) zum laufen zu bekommen, so dass er beim 
Update-Event einen Interrupt auslöst.

So sehen meine Versuche bis jetzt aus:
1
void TIM7_IRQHandler(void)
2
{
3
  GPIOC->ODR += 1;
4
  TIM_ClearITPendingBit(TIM7, TIM_IT_Update);
5
}
6
7
void main(void)
8
{
9
  // TIM7 initialisieren
10
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
11
  TIM_TimeBaseStructure.TIM_Period = 0xffff;
12
  TIM_TimeBaseStructure.TIM_Prescaler = 0xffff;
13
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
14
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
15
  TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0000;
16
  TIM_TimeBaseInit(TIM7, &TIM_TimeBaseStructure);
17
18
  // Interrupt für TIM7 initialisieren
19
  NVIC_InitTypeDef NVIC_InitStructure;
20
  NVIC_InitStructure.NVIC_IRQChannel = TIM7_IRQChannel;
21
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
22
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
23
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
24
  NVIC_Init(&NVIC_InitStructure);
25
26
  // low speed peripheral clock für TIM7 (sollte 32.768kHz sein)
27
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM7, ENABLE);
28
29
  // interrupt enablen - nur update-events für die Basic Timer
30
  TIM_ITConfig(TIM7, TIM_IT_Update, ENABLE);
31
32
  // TIM7 enable
33
  TIM_Cmd(TIM7, ENABLE);
34
35
  while(1);
36
}

Das Problem ist folgendes: Das Update Event findet immer im gleichen 
Abstand statt, egal was in TimeBaseInit steht. Der Prescaler hat auch 
keinen Einfluss.
Kann ich über den Prescaler den Abstand zwischen zwei Update-Events 
beeinflussen und wenn ja, was mache ich falsch dabei?

Vielen Dank für die Hilfe
Christian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.