综合技术
直播中

陈秀珍

7年用户 891经验值
私信 关注
[问答]

如何计算ADS1220的原码 ?

ADS1220给出的转换结果是 补码形式,为了 计算 输入的模拟量大小,需要 转换为原码。
请教:
知道 补码,如何 计算 原码 ?
如 补码为0x80 0000h,原码如何计算 ?
我的思路是:用原码 转 补码 的逆运算(减1,然后 再各位取反)。
按照上面的思路 计算:
0x80 0000H的原码为:0000 0000 0000 0000 0000 0000;
0xFF FFFFH的原码为:1000 0000 0000 0000 0000 0001.
不知道 是否 正确,还请大侠指点 !
非常感谢!

回帖(2)

王玉华

2019-11-1 09:52:18
其实不必。

比如这个,你读取到了16bit数据,存在var里。那么你只需要
value=((int16_t)var) * 0.03125;
即可。
这个value就就是真实的[-128.0, +128.0),单位:摄氏度。
因为你的单片机和ADS1220编码方式是一样的,所以直接让它以int16_t的数据类型来对待就好了。
(当然如果你的单片机是大端就不行了,因为ADS1220是小端存储的,STM32是小端模式)
举报

李奂善

2019-11-1 10:03:09
感谢大神,我用的STM32F042,是小端模式的
举报

更多回帖

发帖
×
20
完善资料,
赚取积分