??osal_start_timerEx(Lock_TaskID,SBP_START_DEVICE_EVT,SBP_PERIODIC_EVT_PERIOD)與osal_set_event(Music_TaskID,event)的區別是osal_start_timerEx周期性的一直推送事件周期時間由SBP_PERIODIC_EVT_PERIOD決定,而osal_set_event是只推送一次。osal_start_timerEx開始周期性推送以后由osal_stop_timerEx(Lock_TaskID,SBP_START_DEVICE_EVT);停止周期性推送事件。
應用例子:
if ( events & SBP_START_DEVICE_EVT )
{
/*檢查是否從消息隊列中收到數據*/
if(1==lock_task()) //判斷是否位空閑任務
{
osal_stop_timerEx(Lock_TaskID,SBP_START_DEVICE_EVT);
}
else
{
osal_start_timerEx(Lock_TaskID,SBP_START_DEVICE_EVT,SBP_PERIODIC_EVT_PERIOD);
}
return ( events ^ SBP_START_DEVICE_EVT );
}