打印

51单片机要是有64位双精度浮点库就好了

[复制链接]
2515|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
人生长苦|  楼主 | 2020-12-1 23:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
KEIL编译器的float和double都是单精度32位的,如果做科学计算这个精度太差了,双精度找遍全网都找不到,找到德国有一家做这个库的叫做GOFAST,但是要钱很贵,要是有免费的就好了

使用特权

评论回复
评论
xiaofei558008 2020-12-3 16:47 回复TA
自己定义一个结构体,自己写如何? 

相关帖子

沙发
xyz549040622| | 2020-12-1 23:29 | 只看该作者
算64位,本来就不是他的强项。干嘛要勉强他?我记得网上有汇编的代码来着。

使用特权

评论回复
板凳
oufuqiang| | 2020-12-2 08:40 | 只看该作者
做科**算?做计算器吗?

使用特权

评论回复
地板
oufuqiang| | 2020-12-2 08:41 | 只看该作者
我也是服,科学—运算,都能被*掉。

使用特权

评论回复
评论
zlf1208 2020-12-7 09:48 回复TA
因为有 “学”“运”二个字 
5
wh6ic| | 2020-12-2 13:47 | 只看该作者
免费,那就自己做

使用特权

评论回复
6
人生长苦|  楼主 | 2020-12-2 22:10 | 只看该作者
感觉这是8位和32位单片机的最大差别了,8位机编译器不支持双精度运算

使用特权

评论回复
7
ayb_ice| | 2020-12-3 08:51 | 只看该作者
不做双精度是有原因的,一般确实不需要,再者占用资源太多,速度慢,没有意义

使用特权

评论回复
8
athlon64fx| | 2020-12-3 10:50 | 只看该作者
oufuqiang 发表于 2020-12-2 08:41
我也是服,科学—运算,都能被*掉。

祖国就这样

使用特权

评论回复
9
菜鸟同学| | 2020-12-4 13:13 | 只看该作者
你有这个经历不如换成32位的arm.8位单片机处理32位都费劲,何况是双精度。

使用特权

评论回复
10
jenpas| | 2020-12-16 09:37 | 只看该作者

51单片机要是有64位双精度浮点库就好了

大**放都测试可以的吧

使用特权

评论回复
11
人生长苦|  楼主 | 2020-12-16 18:15 | 只看该作者
oufuqiang 发表于 2020-12-2 08:40
做科**算?做计算器吗?

计算器倒不是,不过要做好像几十年前的4004的四位机都能做,关键像我们普通人的水平没有DOUBLE没那水平做DOUBLE运算处理啊,KEIL的LIB C 库已经很完善了,如果有64位DOUBLE配合ANSI C库可以说解决大部分应用问题都变得简单多了,现在也是1T几十MHZ的速度,算这个一秒钟十几二十次总应该不成问题,我是用来做GPS定位算航向,如果没DOUBLE直接用FLOAT算,对于地球的比例,如果要精确到米级根本算不来,有DOUBLE就直接解决了

使用特权

评论回复
12
wh6ic| | 2020-12-17 09:03 | 只看该作者
人生长苦 发表于 2020-12-16 18:15
计算器倒不是,不过要做好像几十年前的4004的四位机都能做,关键像我们普通人的水平没有DOUBLE没那水平做 ...

建议用 64 bit 甚至 128 bit 定点整数来算,比浮点快,不牺牲分辨率、精度
加减法最容易,注意进位、借位就Ok,乘法也不复杂, 除法麻烦一点,网上也应该可以找到相应资源,但应该更容易找到不用除法的算法

使用特权

评论回复
13
oufuqiang| | 2020-12-17 16:12 | 只看该作者
人生长苦 发表于 2020-12-16 18:15
计算器倒不是,不过要做好像几十年前的4004的四位机都能做,关键像我们普通人的水平没有DOUBLE没那水平做 ...

如果算航向,不知你是怎么个算法,2个gps坐标差值一般很小,转定点来算应该不成问题。

使用特权

评论回复
14
@lonely| | 2020-12-17 17:33 | 只看该作者
等你开发

使用特权

评论回复
15
雪山飞狐D| | 2020-12-17 18:10 | 只看该作者
人生长苦 发表于 2020-12-16 18:15
计算器倒不是,不过要做好像几十年前的4004的四位机都能做,关键像我们普通人的水平没有DOUBLE没那水平做 ...

用三角函数的地方可以自己写逼近算法,浮点扩成整型,缩放,好像用的是泰勒公式,4位计算器就是逼近算法,小数点都很多位

使用特权

评论回复
16
人生长苦|  楼主 | 2020-12-17 19:05 | 只看该作者
oufuqiang 发表于 2020-12-17 16:12
如果算航向,不知你是怎么个算法,2个gps坐标差值一般很小,转定点来算应该不成问题。 ...

反复调试发现float没问题,距离和航向误差都不大(要多试几个算法,有些在距离小时得到0或者无穷大之类结果),距离越大误差相对越小,在最近十米左右也能算出航向和距离
用的下面这个算法:https://www.movable-type.co.uk/scripts/latlong.html

使用特权

评论回复
17
人生长苦|  楼主 | 2020-12-17 22:10 | 只看该作者
雪山飞狐D 发表于 2020-12-17 18:10
用三角函数的地方可以自己写逼近算法,浮点扩成整型,缩放,好像用的是泰勒公式,4位计算器就是逼近算法 ...

这种硬核的东西网上好难找到资料,有没有这样的书?

使用特权

评论回复
18
雪山飞狐D| | 2020-12-18 13:46 | 只看该作者
人生长苦 发表于 2020-12-17 22:10
这种硬核的东西网上好难找到资料,有没有这样的书?

《嵌入式系统设计的艺术》专门有一章讲这个

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

50

主题

217

帖子

1

粉丝