Question
STM8S TIM2 Interrupt not working
Hi, I'm trying to Implement an interrupt every 60 seconds, however something is missing. The TIM2 itself is working but can't seem to generate any interrupt. Any idea on what am i missing? The following is the code I am using.
thanks
//Required Headers
#include "STM8S.h"
#define test_LED GPIOB, GPIO_PIN_5
void clock_setup(void);
void TIM2_setup(void);
void main(void)
{
GPIO_Init (test_LED, GPIO_MODE_OUT_PP_LOW_SLOW);
clock_setup();
TIM2_setup();
while(1);
}
void clock_setup(void)
{
CLK_DeInit();
CLK_HSECmd(DISABLE);
CLK_LSICmd(DISABLE);
CLK_HSICmd(ENABLE);
while(CLK_GetFlagStatus(CLK_FLAG_HSIRDY) == FALSE);
CLK_ClockSwitchCmd(ENABLE);
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV8);
CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);
CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSI,
DISABLE, CLK_CURRENTCLOCKSTATE_ENABLE);
CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER2, ENABLE);}
void TIM2_setup(void)
{
TIM2_DeInit();
TIM2_TimeBaseInit(TIM2_PRESCALER_32768, 3662);
TIM2_ITConfig( TIM2_IT_UPDATE, ENABLE );
TIM2_PrescalerConfig( TIM2_PRESCALER_32768, TIM2_PSCRELOADMODE_IMMEDIATE );
TIM2_ClearITPendingBit( TIM2_IT_UPDATE );
TIM2_Cmd( ENABLE );
}In the stm8s_it.c
INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13)
{
GPIO_Init (test_LED, GPIO_MODE_OUT_PP_LOW_SLOW);
/* Clear Interrupt Pending bit */
TIM2_ClearITPendingBit(TIM2_IT_UPDATE);
}