代码如下:
if (P1IFG & (1 << 4))
{
osal_start_timerEx(gu8_simpleBLEPeripheral_TaskID, SBP_URGENCY_UNLOCK_EVT, 3000);
P1IFG &= ~(1 << 4);
}
请问什么时候会出现这种情况呢?
YiKai Chen:
马上触发是指什麼马上被触发?
user5994340:
回复 YiKai Chen:
我这个相当于按下按键3秒后才触发事件的,但是有时候按下按键事件马上就触发了
YiKai Chen:
回复 user5994340:
你是指SBP_URGENCY_UNLOCK_EVT马上就触发了?
user5994340:
回复 YiKai Chen:
是的,事件ID为:
#define SBP_URGENCY_UNLOCK_EVT0x0200
Kevin Qiu1:
回复 user5994340:
出现异常进入中断的次数多吗,多传一些代码看看
YiKai Chen:
回复 user5994340:
每次進入中断都先去停止SBP_URGENCY_UNLOCK_EVT然後在開始SBP_URGENCY_UNLOCK_EVT試試
user5994340:
回复 Kevin Qiu1:
在休眠时按下按键就会出现这种情况,休眠配置为:osal_pwrmgr_device( PWRMGR_BATTERY);HCI_EXT_ClkDivOnHaltCmd( HCI_EXT_ENABLE_CLK_DIVIDE_ON_HALT );
user5994340:
回复 YiKai Chen:
更改成了:
PORT_INTERRUPT_FUNCTION(P1_ISR, P1INT_VECTOR)
{
if(P1IFG & (1 << 3)) {
if(!(P1 & (1 << 3))){MOTOR_OFF();}P1IFG &= ~(1 << 3);}
if(P1IFG & (1 << 4)){osal_stop_timerEx(gu8_simpleBLEPeripheral_TaskID, SBP_URGENCY_UNLOCK_EVT);osal_start_timerEx(gu8_simpleBLEPeripheral_TaskID, SBP_URGENCY_UNLOCK_EVT, 3000);P1IFG &= ~(1 << 4);}P1IF = 0;
}
似乎没有效果
YiKai Chen:
回复 user5994340:
查看看還有沒有其他地方會去啟動SBP_URGENCY_UNLOCK_EVT吧,或是處理SBP_URGENCY_UNLOCK_EVT的前後程序碼有弄錯了?
user5994340:
回复 YiKai Chen:
是只有这里有启动SBP_URGENCY_UNLOCK_EVT的。现在情况是休眠时按下按键,就会马上触发事件;非休眠状态时按下按键则会延时3s触发