2868|4

27

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

Zigbee使用多个定时器出现重连 [复制链接]

对于CC2530芯片,采用ZStack-CC2530-2.5.1a协议栈。在使用多个定时器(#define RECEIVE_TIME  0x0001;
#define ADC_TIME      0x0004)时出现问题。
  1. if(events & RECEIVE_TIME)
  2.   {
  3.         Change_PanId();
  4.       
  5.       return ((events &(0xFFFE)));

  6.   }  
  7.   
  8.   
  9.   if(events & ADC_TIME)
  10.   {
  11.     ReadADC_Auto();
  12.     if(ADC_T != 0x00)
  13.       osal_start_timerEx(GenericApp_TaskID , ADC_TIME , ADC_TimeOut);
  14.     return (events & 0xFFFB);
  15.   }
复制代码


情况描述:
1. RECEIVE_TIME事件为应用层对Coordinater发送给EndDevice心跳包的检测,如果EndDevice每5s没有收到来自Coordinater的包,则切换信道和PANID。
2.ADC_TIME事件为EndDevice定时采集信息上传事件。

问题:
当两个定时器同时工作时,EndDevice容易发生状况使Coordinater接收不到来自EndDevice的数据采集包,同时EndDevice再扫描入网。
此帖出自RF/无线论坛

最新回复

我司专注于蓝牙,WIFI,Zigbee无线射频方案,如果在后续有遇到类似技术问题,可联系 1382871121 或者QQ 2638434590,我司可提供技术支持与射频芯片,模组等产品  详情 回复 发表于 2017-11-30 18:38
点赞 关注
 

回复
举报

42

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
感觉不是多个定时器的问题。
1、产生 RECEIVE_TIME事件后,你做了通道的切换。这个时候协调器和终端节点就不在同一个信道了。个人感觉应该想办法快速扫描到可以通行的信道。增加调频机制。
此帖出自RF/无线论坛

点评

第一个定时器起的作用是如果5秒没有接收到数据包,就会触发RECEIVE_TIME事件,然后才会通道切换。一般情况下5s内一定会有数据包,然后重启RECEIVE_TIME定时器。第二个定时器是实现定时上传数据的功能。  详情 回复 发表于 2017-10-29 10:12
个人签名物联网,智能家居产品开发   https://nicole088.taobao.com/
 
 

回复

27

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
nicole088 发表于 2017-10-22 15:33
感觉不是多个定时器的问题。
1、产生 RECEIVE_TIME事件后,你做了通道的切换。这个时候协调器和终端节点就 ...

第一个定时器起的作用是如果5秒没有接收到数据包,就会触发RECEIVE_TIME事件,然后才会通道切换。一般情况下5s内一定会有数据包,然后重启RECEIVE_TIME定时器。第二个定时器是实现定时上传数据的功能。
此帖出自RF/无线论坛
 
 
 

回复

27

帖子

0

TA的资源

一粒金砂(中级)

4
 
对不起,发现不是定时器的问题。抱歉
此帖出自RF/无线论坛
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

5
 
我司专注于蓝牙,WIFI,Zigbee无线射频方案,如果在后续有遇到类似技术问题,可联系 1382871121 或者QQ 2638434590,我司可提供技术支持与射频芯片,模组等产品
此帖出自RF/无线论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表