void Timer_Init(void)
{
Code: Select all
hal_timer_set(AP_TIMER_ID_5, 1000);
hal_timer_set(AP_TIMER_ID_6, 1000);
tal_mysource_debug("AP_TIMER_ID_6\n");
//
}
这两个不能同时初始化吗?
void Timer_Init(void)
{
Code: Select all
hal_timer_set(AP_TIMER_ID_5, 1000);
hal_timer_set(AP_TIMER_ID_6, 1000);
tal_mysource_debug("AP_TIMER_ID_6\n");
//
}
这两个不能同时初始化吗?
另外如果同时开启多个 timer,要保证两个timer不是同样的周期和同时 start,否则会导致中断冲突。PHY6222 平台没有中断嵌套和中断优先级,如果timer0中断在执行过程中,timer1中断可能无法触发。
根据你代码中实现,两个timer同时初始化,并且都是 1ms,这种情况中断冲突的概率是极大的。
建议你根据实际使用来确定timer的周期和初始化时机。
我们验证了你的问题,同时开启两个 1ms 的 timer 中断是有问题的。建议将 timer 中断周期增大。另外不建议程序中有很小周期的 timer 一直在跑,否则会影响蓝牙中断,使得蓝牙功能出现问题