标题: 如何将小数写入AD9833寄存器 [打印本页]

作者: icecirrus    时间: 2020-5-9 15:56
标题: 如何将小数写入AD9833寄存器
请教大家,我要写2.68进入AD9833的频率寄存器里面,不知如何写这个小数,浮点型如何处理,盼大神指教!


作者: xuyaqi    时间: 2020-5-9 17:14
浮点数组成是有标准的,可以把浮点分解成4个8位数写入AD9833寄存器,读出来时再转成浮点数。
作者: 没有你    时间: 2020-5-9 21:16
可以扩大100倍,以整数的方式保存
作者: Wry123456    时间: 2020-5-9 23:25
浮点数需要按照一个标准,可以分解成4个8位数,读出来就可以转换为浮点数。
作者: TTQ001    时间: 2020-5-10 04:33
有时,我们将分数乘以10 ^ n来将分数转换为整数,n是小数位数。回读时,我们将其除以10 ^ n。
作者: 青桑叶    时间: 2020-5-10 08:26
可以,把小数化成整型数,分别存储。
作者: jiangyan111    时间: 2020-5-11 09:13
你是要输出比如10.2hz这样的需求吗?可以在设置频率的时候缩小10倍就可以了。dds本来就可以输出最小精度0.1hz的。
作者: npn    时间: 2021-9-12 18:10
不明白AD9833是什么芯片? 如果是传输、存储小数, 需要用 union 联合体。
作者: 188610329    时间: 2021-9-12 23:27
npn 发表于 2021-9-12 18:10
不明白AD9833是什么芯片? 如果是传输、存储小数, 需要用 union 联合体。

你真是…………
你确定人家 1年半 以前问的问题,还会回来 继续追问么?
而且其实不需要什么联合体。
计算机存储的数据本来就只是 0 和 1 ,浮点也好,10进制也好,都是给 人 看的,机器压根不管是什么。所以,只要读取这个浮点变量的首地址,通过指针 依次 把连续的4个地址的数据写入目标就可以了。
作者: 烈火    时间: 2021-9-13 08:56
楼主分析的很对,有小数时,需要用到浮点型数据变量。依次 把连续的4个地址写进来就可以了。
作者: univers    时间: 2021-9-19 12:01
浮点数写进去,计算出来是有一点点误差的,我的做法是2.68*100=268,把268写进去,读出来之后再除于100即得到2.68。这样多好。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1