微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 我问的休眠问题是不是太低级了高手都不愿回答,请高手指教!

我问的休眠问题是不是太低级了高手都不愿回答,请高手指教!

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

我的问题是,想让终端休眠,代码如下:

if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT )
{
SampleApp_Send_P2P_Message();
halSleep(9000);
osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
3000  );
return (events ^ SAMPLEAPP_SEND_PERIODIC_MSG_EVT);
}
return 0;

我只加了一句halSleep(9000);让系统休眠9秒,应该每12(9+3)秒执行一次SampleApp_Send_P2P_Message(),但经测量是每9秒执行一次。请指教。谢谢!

如果按照你这样,直接调用HalSleep函数,按照正常的逻辑流程,只是开启了一个9s的睡眠定时器,也有可能没有开启成功,因为你底层将会有射频数据发送,而休眠时,肯定是不允许发送数据的。

从你代码中的意图来看,结合OSAL的休眠机制,系统休眠时间只取决于当期所有定时任务的最小超时时间。你可以让它9s后再执行,但你不能保证这9s内始终是休眠状态,除非你没有其他任务执行。

以上是我的理解,希望能够帮助到你。

谢谢!可是还是不太明白,请继续指导!

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

网站地图

Top