STM32F4 Timer1 Interrupt

OP #3407639
Lesenswert?

Hallo,

ich habe mir ein PWM Signal mit dem Timer1 erzeugt.

Kann ich mit dem Timer1, wenn dieser wieder von null anfängt zu zählen, 
einen Interrupt auslösen? In der startup_stm32f4xx.c kann man allerdings 
nur vier IRQ zum Timer1 auswählen:
1
void WEAK  TIM1_BRK_TIM9_IRQHandler(void);
2
void WEAK  TIM1_UP_TIM10_IRQHandler(void);
3
void WEAK  TIM1_TRG_COM_TIM11_IRQHandler(void);
4
void WEAK  TIM1_CC_IRQHandler(void);

Die passen aber nicht zu dem, was ich brauche.
Allerdings steht im Datenblatt, dass im Upcounting Modus, welchen in 
auch eingestellt habe, das Update interrupt flag gesetzt wird, wenn der 
Timer wieder bei null anfängt zu zählen. Ich verstehe nicht, warum ich 
darauf nicht reagieren kann bzw. warum ich nicht in eine Interrupt 
Service Routine springen kann. Also bei dem Timer2 geht das, aber da 
kann ich auch
1
void WEAK  TIM2_IRQHandler(void);

auswählen.

Vielleicht kann mir ja Jemand helfen.
Gruß Dirk
#3407667
Lesenswert?

das müsste gehen:
TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);

//Interrupt mit der höchsten Prio
NVIC_InitStructure2.NVIC_IRQChannel = TIM1_UP_TIM10_IRQn;
NVIC_InitStructure2.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure2.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure2.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure2);

void TIM1_UP_TIM10_IRQHandler(void)
{
uint32_t xxx, yyy;

TIM_ClearFlag(TIM1, TIM_FLAG_Update);

....
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren