51uwb.cn

 找回密码
 立即注册
查看: 5082|回复: 1
打印 上一主题 下一主题

多标签调试1

[复制链接]

73

主题

249

帖子

7065

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7065
跳转到指定楼层
楼主
发表于 2018-12-11 22:14:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
多标签最近调试了几天,但是一直进展不大。

今天在代码中间加了一行串口打印,突然整个系统就可以正常运转了,两个标签测距,刷新频率在2HZ左右,而且很流畅。 当把打印语句删除,两个标签就不能工作了。记录一下,以后慢慢解决
  1.   for(tag_index = SLAVE_TAG_START_INDEX; tag_index <MAX_SLAVE_TAG; tag_index++)
  2.                 {
  3.                     if(Semaphore[tag_index] == 1)
  4.                     {
  5.                             printf("Release Semaphore to Tag%d!\r\n",tag_index);
  6.                         // dwt_setrxtimeout(0);
  7.                         Master_Release_Semaphore[ALL_MSG_SN_IDX] = 0;
  8.                         Master_Release_Semaphore[ALL_MSG_TAG_IDX] = tag_index;
复制代码
而且从串口信息看到,每次master tag 都会打印两次这个信息,有点异常
  1. Tag1 In NetWork!
  2. Release Semaphore to Tag1!
  3. Release Semaphore to Tag1!
复制代码


回复

使用道具 举报

73

主题

249

帖子

7065

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7065
沙发
 楼主| 发表于 2018-12-12 07:57:15 | 只看该作者
  1. if (memcmp(rx_buffer, Master_Release_Semaphore, ALL_MSG_COMMON_LEN) == 0)
  2.                     {
  3.                         Master_Release_Semaphore_comfirm[ALL_MSG_SN_IDX] = frame_seq_nb;
  4.                         Master_Release_Semaphore_comfirm[ALL_MSG_TAG_IDX] = TAG_ID;
  5.                         dwt_writetxdata(sizeof(Master_Release_Semaphore_comfirm), Master_Release_Semaphore_comfirm, 0);
  6.                         dwt_writetxfctrl(sizeof(Master_Release_Semaphore_comfirm), 0);

  7.                         dwt_starttx(DWT_START_TX_IMMEDIATE);
复制代码
问题原因在于接收到Master Release 信号后,发送答复没有等发送成功就开始测距,发送poll message了,在发送后加上等待发送完成标志位,系统运行起来比较正常了。
回复

使用道具 举报

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

本版积分规则

bphero Inc.  

GMT+8, 2024-11-23 02:51 , Processed in 0.010126 second(s), 5 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表