进入PM3后,按键中断无法唤醒
用CC2541制作一个蓝牙按钮,在不使用的时候进入PM3省电模式
用的是HIDEmuKbd这个工程,在hal_drivers.c的Hal_ProcessEvent()中有处理按键事件的代码
if (events & HAL_KEY_EVENT)
{
#if (defined HAL_KEY) && (HAL_KEY == TRUE)
/* Check for keys */
HalKeyPoll();
/* if interrupt disabled, do next polling */
if (!Hal_KeyIntEnable)
{
osal_start_timerEx( Hal_TaskID, HAL_KEY_EVENT, HAL_KEY_SEARCH_DELAY);
}
#endif
return events ^ HAL_KEY_EVENT;
}
当HAL_KEY_SEARCH_DELAY = 3时,在断开连接,停止广播之后,系统能进入PM3,并且能用按键唤醒
但是,HAL_KEY_SEARCH_DELAY = 1,或者2,时,在断开连接,停止广播之后,系统只能能进入PM2
当我在断开连接并且停止广播之后,再用osal_stop_timerEx()把上面的定时器给停了,系统可以进入PM3,但是按键中断无法唤醒
hal_key.c中
void HalKeyEnterSleep ( void )
{
}
HalKeyEnterSleep()为空。
麻烦大家帮我看看,具体是怎么回事,为什么只有扫描时间为3ms,才能进入PM3并且能成功唤醒,我现在需要缩短扫描时间,又会影响到睡眠模式