打印
[国产单片机]

51单片机如何处理64位的数据?

[复制链接]
2316|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
lisn3188| | 2023-6-17 17:51 | 只看该作者
C代码写好,其他的交给编译器。

使用特权

评论回复
板凳
gxs64| | 2023-6-17 20:28 | 只看该作者
多字节除法

使用特权

评论回复
地板
地瓜patch| | 2023-6-17 21:20 | 只看该作者
八字节凑一个64字节,除以四个字节凑一个32字节

使用特权

评论回复
5
icecut| | 2023-6-18 15:54 | 只看该作者
想想小学数学. 列个竖式不就行了

使用特权

评论回复
6
田舍郎| | 2023-6-18 16:19 | 只看该作者
用移位实现除法

使用特权

评论回复
7
coody| | 2023-6-18 20:28 | 只看该作者
用汇编写一个,给C调用,移位减,64位除以32位,做32次移位减即可。

使用特权

评论回复
8
linxi6414|  楼主 | 2023-6-18 20:48 | 只看该作者
除了运算,还要把这个值通过液晶屏显示出来,这个是用来控制一个40G的信号发生器,输出频率精确到HZ位,例如,输出频率为40,000,000,000Hz,根据这个值,自动计算出送给PLL电路的分频比,程序把计算出来的分频比送给PLL电路,使PLL电路自动把VCO的频率锁定在设置的频点上。

使用特权

评论回复
评论
gxs64 2023-6-18 22:16 回复TA
搞错没有,精确到HZ??? 
9
一叶倾城wwq| | 2023-6-19 10:25 | 只看该作者
linxi6414 发表于 2023-6-18 20:48
除了运算,还要把这个值通过液晶屏显示出来,这个是用来控制一个40G的信号发生器,输出频率精确到HZ位,例 ...

先声明变量,直接计算一下看看编译器和MCU行不行,比如:long long a;或者long int a;注意+-*/数字要加UL,比如:a=a*1000UL;先试试,不行再按楼上的想办法搞算法。

使用特权

评论回复
10
linxi6414|  楼主 | 2023-6-19 20:43 | 只看该作者
一叶倾城wwq 发表于 2023-6-19 10:25
先声明变量,直接计算一下看看编译器和MCU行不行,比如:long long a;或者long int a;注意+-*/数字要加UL ...

定义long long 编译无法通过,定义long int 可以编译通过,但是输出结果是错误的。

使用特权

评论回复
评论
一叶倾城wwq 2023-6-21 17:34 回复TA
还有你这个取位计算太low了吧,%1000/100这种,比如10000,换成/1000,/1000%10,/100%10,/10%10,%10即可,你这个是计算都有问题,最后g=dat%10%10?唉~ 
一叶倾城wwq 2023-6-21 17:30 回复TA
仿真或者打印看下long int是几位,大数字后面要加UL啊,后面看到你说给小朋友做的玩具之类的,那就是仅此一台两台的?那还不换好的MCU?不用考虑生产,直接上好的贵的。 
11
linxi6414|  楼主 | 2023-6-19 20:47 | 只看该作者
coody 发表于 2023-6-18 20:28
用汇编写一个,给C调用,移位减,64位除以32位,做32次移位减即可。

请教一下具体怎么写?

使用特权

评论回复
12
英雄本色2022| | 2023-6-19 21:43 | 只看该作者
linxi6414 发表于 2023-6-18 20:48
除了运算,还要把这个值通过液晶屏显示出来,这个是用来控制一个40G的信号发生器,输出频率精确到HZ位,例 ...

什么晶振也达不到这个精度,能达到1ppm都很难得了,这也才百万分之一,用单精度浮点数运算足够了

使用特权

评论回复
13
hahajing27| | 2023-6-19 21:48 | 只看该作者
楼主在做毕业设计么,如果是做产品还是算了,要知道淘宝上大把卖这个开发板的,一年到头没卖几个

使用特权

评论回复
14
linxi6414|  楼主 | 2023-6-20 09:30 | 只看该作者
hahajing27 发表于 2023-6-19 21:48
楼主在做毕业设计么,如果是做产品还是算了,要知道淘宝上大把卖这个开发板的,一年到头没卖几个 ...

给朋友做一个维修小工具,个人使用,没有打算卖的东西。

使用特权

评论回复
15
linxi6414|  楼主 | 2023-6-20 09:31 | 只看该作者
英雄本色2022 发表于 2023-6-19 21:43
什么晶振也达不到这个精度,能达到1ppm都很难得了,这也才百万分之一,用单精度浮点数运算足够了 ...

但是你输入进去的值是要这么输入的,实际输出的值,会根据实际情况而改变,实际的电路输出肯定是达不到这个精度的,这点是肯定的。

使用特权

评论回复
16
ayb_ice| | 2023-6-20 13:14 | 只看该作者
用浮点吧,可能达不到LZ要求

使用特权

评论回复
17
linxi6414|  楼主 | 2023-6-20 16:22 | 只看该作者
hahajing27 发表于 2023-6-19 21:48
楼主在做毕业设计么,如果是做产品还是算了,要知道淘宝上大把卖这个开发板的,一年到头没卖几个 ...

我儿子都已经初中毕业了。

使用特权

评论回复
18
hahajing27| | 2023-6-20 17:26 | 只看该作者
你连写程序都这么吃力,更不用说作频率处理了,adi有现成的,就是指标很烂

使用特权

评论回复
19
linxi6414|  楼主 | 2023-6-20 19:21 | 只看该作者
hahajing27 发表于 2023-6-20 17:26
你连写程序都这么吃力,更不用说作频率处理了,adi有现成的,就是指标很烂

这个是给朋友做的小维修工具,频率处理部分是现成的,只需要往芯片里送串行指令就行了,也就是分频系数。

使用特权

评论回复
20
hahajing27| | 2023-6-20 21:59 | 只看该作者
你做吧,以后就明白什么回事了

使用特权

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

本版积分规则

64

主题

623

帖子

5

粉丝