HAL-key处理流程是怎样的
时间:12-22
整理:3721RD
点击:
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, 100);
}
#endif
return events ^ HAL_KEY_EVENT;
}上面的代码处理按键任务时,通过调用HALKEYPOll()这个函数用来查询按键状态,HALKEYPoll()到最后调用(*halKeyCBack_t) (uint8 keys, uint8 state);
不知道最后调用的那个函数使用来干什么的,是给OSAL发送消息用的吗?
通常是回调函数。使用 HalKeyConfig( OnboardKeyIntEnable, OnBoard_KeyCallback);注册,OnBoard_KeyCallback会把按键信息发送给使用RegisterForKeys( xxx_TaskID )注册的任务,任务会处理这个KEY_CHANGE事件,debug进去,一步步跟,很容易定位。