找回密码
 立即注册
楼主: 神农鼎

B版 AI8H2K12U-45I-TSSOP20 工程样片刚回来,2025年6月开始供货

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-12-28 03:37:59 | 显示全部楼层
神*** 发表于 2024-12-27 08:50
B版 AI8H2K12U-45I-TSSOP20
生产测试环节还没跟上,
先从深圳发工程样片给您 指点江山

谢谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:459
  • 最近打卡:2025-05-02 21:17:31
已绑定手机
已实名认证

110

主题

2223

回帖

5464

积分

版主

积分
5464
发表于 2024-12-28 09:26:37 | 显示全部楼层
cn*** 发表于 2024-12-27 09:31
我现在有个需求就是计算两个GPS坐标之间的间距,所以单精度也不够用,unsigned long也不好搞,因为要用到 ...

将双精度浮点数据拆开(原数据是字符串吧?),
分为整数部分和小数部分,直接求差值,
然后就得到了一个0和一个较小的坐标值,
再对这两个坐标进行运算即可。
没必要直接在原数据上运行
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-05-02 09:38:13

109

主题

1900

回帖

5214

积分

论坛元老

积分
5214
发表于 2024-12-28 09:29:59 | 显示全部楼层
B版完善多了!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:387
  • 最近打卡:2025-05-02 10:19:07
已绑定手机

8

主题

137

回帖

1049

积分

金牌会员

积分
1049
发表于 2024-12-28 21:08:08 | 显示全部楼层
王*** 发表于 2024-12-28 09:26
将双精度浮点数据拆开(原数据是字符串吧?),
分为整数部分和小数部分,直接求差值,
然后就得到了一个0 ...

我也是这么想的,但是就是原始数据是          度度度分分.分分分分分分   这样不管是先把分分.分分分分分分折成度再相减,还是把度折成分再相减,都需要8-9位实际有效数字。

麻烦就是两坐标相减后,余下的值很小,还要做平方,开根号(最简单的数学笛卡尔两点距离公式)没考虑球面的情况。

这样就显得不够用,希望是能在几米差距就能做出有效反应。

点评

那使用unsigned long 数据不是正好吗?因为你是想用于实际控制,所以转换单位并没有必要。 32位整数数据提供9位的有效数字是够用的,并且你也说了,实际的差值很小。 那岂不是正好,直接根据char类型对齐相减得到值  详情 回复 发表于 2024-12-28 22:13
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:387
  • 最近打卡:2025-05-02 10:19:07
已绑定手机

8

主题

137

回帖

1049

积分

金牌会员

积分
1049
发表于 2024-12-28 21:09:52 | 显示全部楼层
LAO*** 发表于 2024-12-28 03:37
最终精度, 折合十进制数 , 需要几位 有效位数 ?

原始数据是          度度度分分.分分分分分分   这样不管是先把分分.分分分分分分折成度再相减,还是把度折成分再相减,都需要8-9位实际有效数字。

麻烦就是两坐标相减后,余下的值很小,还要做平方,开根号(最简单的数学笛卡尔两点距离公式)没考虑球面的情况。

这样就显得不够用,希望是能在几米差距就能做出有效反应。

转unsigned long 会超,而且后面做平方,开方也不好搞。坛子里说251支持double,我也试了确实可以,我现在等8051U芯片回来实测。

点评

刚才折算了一下, 1分 约 18.5m, 依靠单精度浮点数运算, 精度有点勉强, 由于浮点数的浮动性, 在小于1分时, 由于输入的精度位数偏少, 因此越小计算精度越高, 在几米范围内, 单精度浮点数计算 和 双精度浮点数计算, 计  详情 回复 发表于 2024-12-29 07:35
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:459
  • 最近打卡:2025-05-02 21:17:31
已绑定手机
已实名认证

110

主题

2223

回帖

5464

积分

版主

积分
5464
发表于 2024-12-28 22:13:35 | 显示全部楼层
cn*** 发表于 2024-12-28 21:08
我也是这么想的,但是就是原始数据是          度度度分分.分分分分分分   这样不管是先把分分.分分分分 ...

那使用unsigned long 数据不是正好吗?因为你是想用于实际控制,所以转换单位并没有必要。
32位整数数据提供9位的有效数字是够用的,并且你也说了,实际的差值很小。


那岂不是正好,直接根据char类型对齐相减得到值,然后根据这个值再做距离求解(可以自行实现一下球形坐标解算),如果两个坐标点近的话,使用16位的整型应该都是够的。并且,较近的坐标计算距离的时候,是可以不用考虑地球球面影响的,因为10m内的数据都可以近似平面。


举个例子,比对纬度值“4807.038,N”和下一个坐标点的纬度值“4807.042,N”,可以直接比较字符串的字符是否相等,从不相等的开始提取,得到diff = 38-42 = 4;同理再找到经度的差值(例如6),则可以计算距离为sqrt(pow(4,2),pow(6,2));这时候计算就相当快了。大概在ns级即可完成一次距离解算。如果担心累计误差,则可以对初始启动点位进行记忆,之后的差分都跟最初的点位进行计算得到绝对位置,即可消除计算引起的累计误差。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-12-29 07:35:55 | 显示全部楼层
cn*** 发表于 2024-12-28 21:09
原始数据是          度度度分分.分分分分分分   这样不管是先把分分.分分分分分分折成度再相减,还是把 ...

刚才折算了一下, 1分 约 18.5m, 依靠单精度浮点数运算, 精度有点勉强, 由于浮点数的浮动性, 在小于1分时, 由于输入的精度位数偏少, 因此越小计算精度越高,
在几米范围内, 单精度浮点数计算 和 双精度浮点数计算, 计算结果没什么差异(误差在 1m范围内).

反而是大于 1分 情况下, 比如 几km , 双精度浮点数计算, 明显要比 单精度浮点数计算, 可多 2~3位 有效数字(误差在 1m范围内)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-12-29 07:36:12 | 显示全部楼层
我的结论是,
在几米范围内,  单精度浮点数计算 和 双精度浮点数计算, 计算结果(精度)没什么差异(误差在 1m范围内).
在大范围内,  双精度浮点数计算 明显 比 单精度浮点数计算, 计算精度要高出许多(多 2~3位 有效数字, 误差在 1m范围内).

因此, 在动态运行中, 比如无人机飞行到指定点, 单精度浮点数运算 不行(精度不达标), 必须要用双精度浮点数运算.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-12-29 07:51:02 | 显示全部楼层
无人机飞行到指定点, 如使用单精度浮点数运算 , 开始时误差较大(越靠近目标误越小), 在 10m内, 精度几乎和 双精度浮点数运算 持平, 然后精确飞到指定点,  

总之, 使用单精度浮点数运算 ,飞行路线近拟于一条弧线(而非直线), 飞行时间长.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:387
  • 最近打卡:2025-05-02 10:19:07
已绑定手机

8

主题

137

回帖

1049

积分

金牌会员

积分
1049
发表于 2024-12-29 19:46:05 | 显示全部楼层
王*** 发表于 2024-12-28 22:13
那使用unsigned long 数据不是正好吗?因为你是想用于实际控制,所以转换单位并没有必要。
32位整数数据提 ...

你这么说也没错,但是前面的大数在刚好跨界进位的时候,是不能忽略的。
比如109度59.3354分,再走几十米就110度了。

所以前面的数据还是要一直参与加减运算的。

点评

大概是没有这么麻烦的,就按你给的例子来吧,假设接收到的数据存储在char dat[10]里面。 只需要dat[0]-='0';即可得到数字形式存储的一串数组。 此时从最低位往高位一路算过去,带上借位,就是普通的数学计算,想算多  详情 回复 发表于 2024-12-29 23:51
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-3 01:01 , Processed in 0.153769 second(s), 106 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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