[电子元器件] AD7657读出来的14位补码数据该怎么处理呀

[复制链接]
1685|3
 楼主| windit 发表于 2014-6-20 10:35 | 显示全部楼层 |阅读模式
AD75657读出来的14位数据,该怎么转换成模拟数据呀? 范围为+-5V的用(advalue  * 10.0 / 16384 - 5)函数处理,感觉转换出来的数据不对呀!求大神指导下。。。
xudongdong91 发表于 2016-5-13 17:02 | 显示全部楼层
int16_t advalue;

/* 14位数据,补码运算 */
advalue <<= 2;
advalue >>=2;

result = advalue * 10.0 / 16384 - 5;

看过C语言的书上写的是,无符号右移后再左移高位用0补齐。而有符号数最高位(符号位)为1时,左移用0还是1补齐不确定。实际测试中,用arm Cortex-M4,win7 ,Ubuntu中测试,当符号位为1时,右移最高位用1补

fzyuan 发表于 2016-5-13 18:13 | 显示全部楼层
2个字节数据分别左移2位放入一个“整形与2个字符”的联合体,直接读出整形就可以了。
凡尘帅 发表于 2017-5-26 15:44 | 显示全部楼层
专做ADI,原装现货和海外订货,接收全系列询价。有需要请联系我,QQ267416049
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

20

帖子

2

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