int main(void)
{
/*系统时钟初始化*/
system_init();
/*port 初始化*/
port_init();
/*定时器初始化*/
timer_init();
/*任务初始化*/
Task_Init();
E52248_Analog_I2C_Init();
while(1)
{
if(Timer_GetSysTimerCount()>=5) // 每5ms执行一次
{
Timer_ResetSysTimerCount();
Task_Execute();
}
}
}
static void STIM_0_IntCallBack(void)
{
Timer_ExpiredCallback();
}
void timer_init(void)
{
/* STIM configuration */
STIM_Config_t stimConfig =
{
.workMode = STIM_FREE_COUNT,
.compareValue = 40000, /*counter clock is 40M, compare value =40000, period = 1ms*/
.countResetMode = STIM_INCREASE_FROM_0,
.clockSource = STIM_FUNCTION_CLOCK,
};
/* Configure STIM function clock*/
CLK_ModuleSrc(CLK_STIM, CLK_SRC_OSC40M);
/* Enable STIM module */
SYSCTRL_EnableModule(SYSCTRL_STIM);
/* Enable STIM NVIC IRQ*/
NVIC_EnableIRQ(STIM_IRQn);
//NVIC_SetPriority(STIM_IRQn,0x40);
/* Init STIM_0*/
STIM_Init(STIM_0,&stimConfig);
/* Install interrupt callback function */
STIM_InstallCallBackFunc(STIM_0,STIM_INT,STIM_0_IntCallBack);
/* Enable STIM_0 interrupt*/
STIM_IntCmd(STIM_0, ENABLE);
/*Enable STIM0*/
STIM_Enable(STIM_0);
}
int main(void)
{
/*系统时钟初始化*/
system_init();
/*port 初始化*/
port_init();
/*定时器初始化*/
timer_init();
/*任务初始化*/
Task_Init();
E52248_Analog_I2C_Init();
while(1)
{
if(Timer_GetSysTimerCount()>=5) // 每5ms执行一次
{
Timer_ResetSysTimerCount();
Task_Execute();
}
}
}
IAR查看寄存器,发现计数又在增加STIM_CNTn0,
计数值达到STIM_CVn0值后STIM_SCn0的flag标志位也置1了