51uwb.cn

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

测距计算距离的时间戳打印错误问题

[复制链接]

3

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
跳转到指定楼层
楼主
发表于 2021-10-19 10:57:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我使用的是基于DECA WAVE Release修改的代码,测距流程几乎没有变动。但是为何我使用串口查看时间戳却是错误的?

附上我接收到final帧计算距离,并且打印的代码。这里的printf2是重写的打印函数。


这样写的目的是验证前两次打印和后两次打印数据。我输出的顺序不同,结果却不一样?
  1. Ra = (int64)((anchorRespRxTime - tagPollTxTime) & MASK_40BIT);
  2.                                 Db = (int64)((inst->txu.anchorRespTxTime - inst->tagPollRxTime) & MASK_40BIT);

  3.                                 // response final round trip delay time is calculated as
  4.                                 // (tagFinalRxTime - anchorRespTxTime) - (tagFinalTxTime - anchorRespRxTime)
  5.                                 Rb = (int64)((tagFinalRxTime - inst->txu.anchorRespTxTime) & MASK_40BIT);
  6.                                 Da = (int64)((tagFinalTxTime - anchorRespRxTime) & MASK_40BIT);

  7.                                 RaRbxDaDb = (((double)Ra))*(((double)Rb))
  8.                                 - (((double)Da))*(((double)Db));

  9.                                 RbyDb = ((double)Rb + (double)Db);

  10.                                 RayDa = ((double)Ra + (double)Da);

  11.                                 //time-of-flight
  12.                                 inst->tof = (int64) ( RaRbxDaDb/(RbyDb + RayDa) );
  13.                                                                 uwb_fppl = dwGetReceivePower();
  14.                                                                
  15.                                 printf2("tagPollTxTime %16X, tagPollRxTime %16X \r\n",tagPollTxTime,inst->tagPollRxTime) ;
  16.                                                                 printf2("anchorRespTxTime %16X, anchorRespRxTime %16X \r\n",inst->txu.anchorRespTxTime,anchorRespRxTime) ;
  17.                                                                 printf2("tagFinalTxTime %16X, tagFinalRxTime %16X \r\n",tagFinalTxTime,tagFinalRxTime) ;
  18.                                                                
  19.                                                                 printf2("tagPollTxTime %16X, tagPollRxTime %16X \r\n",tagPollTxTime,inst->tagPollRxTime) ;
  20.                                                                 printf2("anchorRespTxTime %16X, anchorRespRxTime %16X \r\n",inst->txu.anchorRespTxTime,anchorRespRxTime) ;
  21.                                                                 printf2("tagFinalTxTime %16X, tagFinalRxTime %16X \r\n\r\n",tagFinalTxTime,tagFinalRxTime) ;
  22.                                                                
  23.                                 printf2("anchorRespRxTime %16X, tagPollTxTime %16X \r\n",anchorRespRxTime,tagPollTxTime) ;
  24.                                                                 printf2("tagFinalTxTime %16X, anchorRespRxTime %16X \r\n",tagFinalTxTime,anchorRespRxTime) ;
  25.                                                                 printf2("tagFinalTxTime %16X, tagPollTxTime %16X \r\n",tagFinalTxTime,tagPollTxTime) ;

  26.                                 printf2("anchorRespTxTime %16X, tagPollRxTime %16X \r\n",inst->txu.anchorRespTxTime,inst->tagPollRxTime) ;
  27.                                                                 printf2("tagFinalRxTime %16X, anchorRespTxTime %16X \r\n",tagFinalRxTime,inst->txu.anchorRespTxTime) ;
  28.                                                                 printf2("tagPollRxTime %16X, tagFinalRxTime %16X \r\n",inst->tagPollRxTime,tagFinalRxTime) ;
  29.                                                                
  30.                                 printf2("Ra %8x, Rb %8x, Da %8x, Db %8x, tof %8x   \r\n ",Ra,Rb,Da,Db,inst->tof);

  31.                                 reportTOF(inst);
  32.                                 inst->newrange = 1;
复制代码


测距都是行得通的。也是有距离值的,但是不知道这个距离是如何算出来的。为何打印的顺序会导致输出的结果不同?

还有一个问题是,inst->txu.anchorRespTxTime,也就是respond的发送时间戳是在哪里保存的,在代码中没看到赋值。

图片附上收到的数据示例

微信图片_20211019104938.png (23.99 KB, 下载次数: 3175)

接收到的数据

接收到的数据
回复

使用道具 举报

3

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
沙发
 楼主| 发表于 2021-10-19 10:59:12 | 只看该作者
图片倒数第二行的tof和distance是在reportTOF函数中的计算的tof和distance
回复

使用道具 举报

35

主题

1053

帖子

4531

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4531
板凳
发表于 2021-10-24 21:25:07 | 只看该作者
77296619 发表于 2021-10-19 10:59
图片倒数第二行的tof和distance是在reportTOF函数中的计算的tof和distance

原版代码,友情帮顶下
回复

使用道具 举报

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

本版积分规则

bphero Inc.  

GMT+8, 2024-11-23 15:46 , Processed in 0.018191 second(s), 5 queries , File On.

Powered by Discuz! X3.3

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

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