通过自己配置寄存器与使用官方的接口函数得到现象一致: 定时器设置时间值对实际的定时时间长度在表现上没有区别,不管时间参数为设置成何值,都表现的很快进入定时中断
相关代码:
定时器设置
Timer_IF_Init(PRCM_TIMERA1,TIMERA1_BASE, TIMER_CFG_ONE_SHOT|TIMER_CFG_SPLIT_PAIR,TIMER_A,79);
Timer_IF_IntSetup(TIMERA1_BASE,TIMER_A,TimerA1IntHandler);
定时器中断
static void
TimerA1IntHandler(void)
{
unsigned long ulStatus;
ulStatus = MAP_TimerIntStatus(TIMERA1_BASE, true);
MAP_TimerIntClear(TIMERA1_BASE, ulStatus);
Message("Completed TimerA1 Interrupt Handler \r\n");
}
定时器启动
void ButtonSw3IntHandler()
{
Timer_IF_Start(TIMERA1_BASE,TIMER_A,1000*500);
Message("sw3 timer start ");
}
Yue TANG:
是第一次很快进入,后面的都正常吗?
GUIFANG WU:
回复 Yue TANG:
我添加到FREE RTOS里面的,也不可以。单个跑那个SDK里面的demo,倒是可以正常运行。
下面是我的处理方式
Timer_IF_Init(PRCM_TIMERA0, g_ulBase, TIMER_CFG_PERIODIC, TIMER_A, 0); Timer_IF_IntSetup(g_ulBase, TIMER_A, TimerBaseIntHandler); Timer_IF_Start(g_ulBase, TIMER_A, 1000);