微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > osal_start_timerEx();函数不执行

osal_start_timerEx();函数不执行

时间:10-02 整理:3721RD 点击:

我在串口接受回调中,串口接受指定字符后,

if(afStatus_SUCCESS==AF_DataRequest())

{

    osal_start_timerEx();//事件是5s后,重启

}

广播发送给节点,

在UINT16 SerialApp_ProcessEvent( uint8 task_id, UINT16 events )中事件没触发。

然后我随便把这个重启事件发在哪里都没法执行的。

当我注释掉一个事件(随便一个,算重启,一共三个事件)时候,就可以执行了。好奇怪。

难道是一个任务只能处理指定多个事件吗?但是之前也是三个事件都可以触发的。

协议版本zstack-cc2530-2.3.0-1.4.0.

调用这个osal_start_timerEx的参数有设置多吧,task,eventID

osal_start_timerEx( SampleApp_TaskID,
SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT );没错,我是从以前三个事件都能执行的模版拷贝过来的,只是把里面的事件给改了就出问题了。

我注释一个事件就能触发。例如:

/*

if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT )
{
SerialApp_SendPeriodicMessage();
osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT,SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT+(osal_rand() & 0x00FF) );
return (events ^ SAMPLEAPP_SEND_PERIODIC_MSG_EVT);
}

*/

我不注释事件,只是事件里面什么都不执行,还是不触发。

if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT )
{
//SerialApp_SendPeriodicMessage();
//osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT,SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT+(osal_rand() & 0x00FF) );
return (events ^ SAMPLEAPP_SEND_PERIODIC_MSG_EVT);
}

好奇怪。我在研究研究。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top