ADI 技术
直播中

罗振炜

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

请问从AD7712读取数据在C语言中保存的数据类型是什么?

谁用过AD7712吗,从AD7712读取的数据在C语言中是保存为什么数据类型啊,long int 吗?我用AD7712对波形进行数字化,AD7712输出的数据应该是有正有负的对吧?

回帖(5)

寇昕

2019-2-14 13:58:20
C语言中,不同的编译环境和嵌入系统,long int代表的意思不同,可能代表32位有符号整型,也可能是64位有符号整型等。
可以把串行读出的24位码值,保存于32位无符号整形,再做有符号和参考电压比值处理
举报

杨杰

2019-2-14 14:06:25
1)IAR EW ARM里可以#include   /*path:C:Program Files (x86)IAR SystemsEmbedded Workbench 7.5armincc*/
打开这个头文件,会看到直观的数据类型定义
#ifdef __INT32_T_TYPE__
  typedef __INT32_T_TYPE__   int32_t;
  typedef __UINT32_T_TYPE__ uint32_t;
#endif /* __INT32_T_TYPE__ */
 
2)24bit的ADC转换值,用uint32_t即可。
ADC双极性输出,0x00FFFFFF是正电压最大值,此时Ain+ - Ain- = Vref/G;0x00800000是0V;0x0是负电压最大值,-Vref/G。
 
抛砖引玉下,不对的地方,还望坛内高人指正。
举报

罗振炜

2019-2-14 14:21:11
引用: dsdfshf 发表于 2019-2-14 19:15
1)IAR EW ARM里可以#include <stdint.h>  /*path:C:Program Files (x86)IAR SystemsEmbedded Workbench 7.5armincc*/
打开这个头文件,会看到直观的数据类型定义
#ifdef __INT32_T_TYPE__

0x0是负电压最大值吗?不是0x007FFFFF吗?
举报

杨杰

2019-2-14 14:38:30
引用: uyvwyewr 发表于 2019-2-14 19:30
0x0是负电压最大值吗?不是0x007FFFFF吗?

见datasheet P9/29
Positive Full-Scale Error,Bipolar Zero Error,Bipolar Negative Full-Scale Error
举报

更多回帖

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