[国产单片机] 51单片机如何处理64位的数据?

[复制链接]
3284|23
 楼主| linxi6414 发表于 2023-6-17 15:51 | 显示全部楼层 |阅读模式
控制一个电路,需要用到64位的数据除以一个32位的数据,该如何处理。
lisn3188 发表于 2023-6-17 17:51 | 显示全部楼层
C代码写好,其他的交给编译器。
gxs64 发表于 2023-6-17 20:28 | 显示全部楼层
多字节除法
地瓜patch 发表于 2023-6-17 21:20 来自手机 | 显示全部楼层
八字节凑一个64字节,除以四个字节凑一个32字节
icecut 发表于 2023-6-18 15:54 | 显示全部楼层
想想小学数学. 列个竖式不就行了
田舍郎 发表于 2023-6-18 16:19 来自手机 | 显示全部楼层
用移位实现除法
coody 发表于 2023-6-18 20:28 | 显示全部楼层
用汇编写一个,给C调用,移位减,64位除以32位,做32次移位减即可。
 楼主| linxi6414 发表于 2023-6-18 20:48 | 显示全部楼层
除了运算,还要把这个值通过液晶屏显示出来,这个是用来控制一个40G的信号发生器,输出频率精确到HZ位,例如,输出频率为40,000,000,000Hz,根据这个值,自动计算出送给PLL电路的分频比,程序把计算出来的分频比送给PLL电路,使PLL电路自动把VCO的频率锁定在设置的频点上。

评论

搞错没有,精确到HZ???  发表于 2023-6-18 22:16
一叶倾城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;先试试,不行再按楼上的想办法搞算法。
 楼主| linxi6414 发表于 2023-6-19 20:43 | 显示全部楼层
一叶倾城wwq 发表于 2023-6-19 10:25
先声明变量,直接计算一下看看编译器和MCU行不行,比如:long long a;或者long int a;注意+-*/数字要加UL ...

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评论

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

请教一下具体怎么写?
英雄本色2022 发表于 2023-6-19 21:43 | 显示全部楼层
linxi6414 发表于 2023-6-18 20:48
除了运算,还要把这个值通过液晶屏显示出来,这个是用来控制一个40G的信号发生器,输出频率精确到HZ位,例 ...

什么晶振也达不到这个精度,能达到1ppm都很难得了,这也才百万分之一,用单精度浮点数运算足够了
hahajing27 发表于 2023-6-19 21:48 来自手机 | 显示全部楼层
楼主在做毕业设计么,如果是做产品还是算了,要知道淘宝上大把卖这个开发板的,一年到头没卖几个
 楼主| linxi6414 发表于 2023-6-20 09:30 | 显示全部楼层
hahajing27 发表于 2023-6-19 21:48
楼主在做毕业设计么,如果是做产品还是算了,要知道淘宝上大把卖这个开发板的,一年到头没卖几个 ...

给朋友做一个维修小工具,个人使用,没有打算卖的东西。
 楼主| linxi6414 发表于 2023-6-20 09:31 | 显示全部楼层
英雄本色2022 发表于 2023-6-19 21:43
什么晶振也达不到这个精度,能达到1ppm都很难得了,这也才百万分之一,用单精度浮点数运算足够了 ...

但是你输入进去的值是要这么输入的,实际输出的值,会根据实际情况而改变,实际的电路输出肯定是达不到这个精度的,这点是肯定的。
ayb_ice 发表于 2023-6-20 13:14 | 显示全部楼层
用浮点吧,可能达不到LZ要求
 楼主| linxi6414 发表于 2023-6-20 16:22 | 显示全部楼层
hahajing27 发表于 2023-6-19 21:48
楼主在做毕业设计么,如果是做产品还是算了,要知道淘宝上大把卖这个开发板的,一年到头没卖几个 ...

我儿子都已经初中毕业了。
hahajing27 发表于 2023-6-20 17:26 来自手机 | 显示全部楼层
你连写程序都这么吃力,更不用说作频率处理了,adi有现成的,就是指标很烂
 楼主| linxi6414 发表于 2023-6-20 19:21 | 显示全部楼层
hahajing27 发表于 2023-6-20 17:26
你连写程序都这么吃力,更不用说作频率处理了,adi有现成的,就是指标很烂

这个是给朋友做的小维修工具,频率处理部分是现成的,只需要往芯片里送串行指令就行了,也就是分频系数。
hahajing27 发表于 2023-6-20 21:59 来自手机 | 显示全部楼层
你做吧,以后就明白什么回事了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

74

主题

653

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部