关于TMOS的,tmos_start_event()只执行一次吗?

if ( events & SBP_PERIODIC_EVT )

{

UpdateScanRspData();

performPeriodicTask();

tmos_start_task(Peripheral_TaskID, SBP_PERIODIC_EVT, SBP_PERIODIC_EVT_PERIOD);

return (events ^ SBP_PERIODIC_EVT);

}


if ( events & SBP_10_MS_EVT )

{

UserTask();

tmos_start_task(Peripheral_TaskID, SBP_10_MS_EVT, SBP_10_MS_EVT_PERIOD);      

return (events ^ SBP_10_MS_EVT);

}   

如果我需要让其中SBP_10_MS_EVT停下来的话,执行一次tmos_stop_task(eripheral_TaskID, SBP_10_MS_EVT);发现偶尔能停下那个任务,大多数情况下该event还是继续执行的

我的tmos_stop_task(eripheral_TaskID, SBP_10_MS_EVT)是在SBP_PERIODIC_EVT里面执行的


tmos_start_task调用后只执行一次的,在任务里再次调用就形成了循环调用,另外任务的定义是按位定义的,注意下是否按照此规则来定义的。


那如果有一个10ms的event,但是执行时间超过了10ms,会不会对其他event进行干扰?还是会打断当前超时的event去执行其他的以保系统执行的精度?


tmos任务是阻塞的,下面的任务会延时执行。


只有登录才能回复,可以选择微信账号登录