在博文:https://www.cnblogs.com/tuzhuke/p/11638221.html 中描述了delayed tx实现方法,这里贴出全部delayed tx 代码以及对应验证代码

1 delayed tx 代码

static uint32 final_tx_time;
static uint64 final_tx_ts;
void BPhero_Distance_Sync_Node(void)
{
int address = ;
msg_f_send.destAddr[] = 0xFF;
msg_f_send.destAddr[] = 0xFF; final_tx_time = dwt_readsystimestamphi32() +0x100000;
dwt_setdelayedtrxtime(final_tx_time); final_tx_ts = (((uint64)(final_tx_time & 0xFFFFFFFE)) << ) + TX_ANT_DLY; final_msg_set_ts(&msg_f_send.messageData[FIRST_TX], final_tx_ts);// 2 3 4 5 6 msg_f_send.seqNum = sync_seqnum;
msg_f_send.messageData[]='S';
msg_f_send.messageData[]=; dwt_writetxdata(psduLength, (uint8 *)&msg_f_send, ) ; // write the frame data
dwt_writetxfctrl(psduLength, );
dwt_starttx(DWT_START_TX_DELAYED);
while (!(dwt_read32bitreg(SYS_STATUS_ID) & SYS_STATUS_TXFRS))
{ }; /* Clear TX frame sent event. */
dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_TXFRS); // dwt_forcetrxoff();
if(++sync_seqnum == )
sync_seqnum = ;
}

2 delayed tx验证方法

            h32_timestamp= final_tx_ts>>;
l8_timestamp = final_tx_ts&0xFF;
sprintf(lcd_display_str, "%X%X",h32_timestamp,l8_timestamp);
OLED_ShowString(,,(uint8_t *)lcd_display_str); last_tx_ts = get_tx_timestamp_u64(); h32_timestamp= last_tx_ts>>;
l8_timestamp = last_tx_ts&0xFF;
sprintf(lcd_display_str, "%X%X",h32_timestamp,l8_timestamp);
OLED_ShowString(,,(uint8_t *)lcd_display_str);

验证方法是把delayed tx timestamp打印出来,同时打印发送tx_timestamp,比较二者是否一致。

上述代码将两个时间放在液晶上显示,观察到两个数据完全一样,说明delayed tx  code 没有问题

3注意问题:

final_tx_ts 所有40bit都是有效的,而last_tx_ts低9bit 一直为0,两者比较的时候需要忽略低9bit

4其它问题:

64bit 显示有如下问题,中间需要加变量,具体原因没有去深入查资料,有明白的同学可以留言指导

last_rx_ts= 0x123456789A;
sprintf(lcd_display_str, "%X%X",last_rx_ts>>32,last_rx_ts);

液晶上显示120

last_rx_ts= 0x123456789A; 
sprintf(lcd_display_str, "%X%X",last_rx_ts,last_rx_ts>>32);

液晶上显示3456789A12

 更多内容参考蓝点无限论坛bphero.com.cn 

TDOA Delayed Tx 实现以及验证的更多相关文章

  1. TDOA基础之 delayed tx 实现说明

    不论是在TWR 还是TDOA定位算法中,delayed tx 都会用到,这篇博文主要解析delayed tx 实现. 何为delayed tx? delayed tx 是延时发送,为何要延时?因为这个 ...

  2. TDOA基站 之 时间同步

    TDOA 和 TWR相比,标签可以用最少的信息来定位,但是对于基站要求很高,需要“时间同步”. 这也是TDOA算法的核心部分,很多套件对此讳莫如深,希望能沟通过本文使读者能对TODA同步有一定初步了解 ...

  3. selenium滑块验证

    使用selenium模拟登录解决滑块验证问题   本次主要是使用selenium模拟登录网页端的TX新闻,本来最开始是模拟请求的,但是某一天突然发现,部分账号需要经过滑块验证才能正常登录,如果还是模拟 ...

  4. TDOA 之 基站逻辑代码实现

    在前一篇博文里描述了基站的逻辑部分,这里贴出来具体代码实现.https://www.cnblogs.com/tuzhuke/p/11689881.html 1 Sync 信息部分 case 'S': ...

  5. TDOA 之 基站接收数据

    基站主要 接收同步节点发来的同步信号,代码里定义为S信息. 以及标签节点发来的定位信号,代码中定义为T信号. 代码中使用中断以及帧过滤功能,对模块只接收自己关心设定好的信息,通过中断告知上层,而不是长 ...

  6. 【DWM1000】 code 解密2一 工程初始化代码分析

    instance_init 函数追下去,绝大多数的代码都在初始化如下结构体 typedef struct { INST_MODE mode; instance_init -ANCHOR //insta ...

  7. 【DWM1000】 code 解密1一 去掉Main 函数多余内容

    蓝点DWM1000 模块已经打样测试完毕,有兴趣的可以申请购买了,更多信息参见 蓝点论坛 正文: 室内定位兴起,DWM1000 作为超宽带UWB的代表,在国内用的越来越多,但是可见资料非常少. 一方面 ...

  8. 一些关于Hibernate延迟加载的误区

    最近面试别人,正好出的笔试题中有道关于Hibernate延迟加载的问题,聊天过程中发现很多人对Hibernate的延迟加载有些理解误区,写 些东东在这里,希望对大家有所帮助. 首先是第一个误区:延迟加 ...

  9. Tx.Origin 用作身份验证

    Solidity 中有一个全局变量,tx.origin,它遍历整个调用栈并返回最初发送调用(或交易)的帐户的地址.在智能合约中使用此变量进行身份验证会使合约容易受到类似网络钓鱼的攻击. 有关进一步阅读 ...

随机推荐

  1. mysql 添加大量测试数据

    mysql 添加大量测试数据 场景 针对于大量测试数据插入,检测sql执行速度 第一步:建表 // 测试表 CREATE TABLE user ( id int(11) NOT NULL AUTO_I ...

  2. c#序列化基类(包含派生类继承DynamicObject和 IXmlSerializable)对象

    直接上代码 using System.Diagnostics; using System.Text; using System.Xml; using System.Xml.Schema; using ...

  3. [C++] 习题 2.14 用队列实现桶排序

    目录 前置技能 队列(已在上篇提到栈的时候顺便提到了,不再赘述) 桶排序 具体实现 由用户输入n个10以内的数,每输入i(0≤i≤9),就把它插入第i号队列中,最后把10个队列中的非空队列,按队列号从 ...

  4. 剑指offer28:找出数组中超过一半的数字。

    1 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出 ...

  5. FZU2018级算法第三次作业 3.16 station

    题目大意: 给出1-n共n个数的入栈顺序,可以随时出栈,求出栈的最大字典序. 输入示例 输出示例 51 2 3 4 5 5 4 3 2 1 54 2 5 3 1 5 3 2 4 1 题目分析: 假设目 ...

  6. OSI七层模型对应功能及协议

    前言 OSI七层模型:纯理论模型,所有实际设备和协议都不能对应理论模型. 每一层对应着实际的设备 物理层:中继器.集线器.双绞线 数据链路层:网桥.以太网交换机.网卡 网路层:路由器.三层交换机 传输 ...

  7. Python的json操作

    对数据:    json = json.dumps(data)  编码  dict->string  排序sort_keys=True, 缩进indent=4, 分隔符separators=(' ...

  8. linux服务器安装oracle

    Linux安装Oracle 11g服务器(图文) 应该是最完整的Oracle安装教程了,全程在测试服务器上完成,软件环境:Red Hat Enterprise Linux 6:Oracle 11g ( ...

  9. VMWare linux虚拟机(centos没有GUI)联网(NAT模式)

    使用yum list命令查看是否能连上网. 不能联网,需要对centos进行网络配置.但在此之前,需要: 1. 虚拟机网络连接方式设置成NAT. 2. window系统下的两个服务VMwareDHCP ...

  10. em...刚打完一点cf。。 有点子感悟

    首先,下笔一定要读清楚题目. 情况多考虑一下. 这几次的模拟赛,分类思想很重要,往往一大坨东西扔给你,你不去尝试分类的话就很难整理清楚.