如何把从ADC SPI口读到的16比特数,转换成电压值

[复制链接]
 楼主| xilinxer 发表于 2008-7-31 13:25 | 显示全部楼层 |阅读模式
我用单片机通过SPI口读16位ADC的电压输出。读到两个unsigned char 字节。
因为需要运算,所以得把这两个字节的电压转换为float.基准是5V。
我的代码如下:
  float   Vout; 
  unsigned int Voltage;
  unsigned int Temp;
  unsigned char HighByte;
  unsigned char LowByte;
  
  Temp= HighByte;
  Voltage=Temp<<8;
  Temp=LowByte;
  Voltage=Voltage | Temp;
  
  Vout=Voltage*(5.0/65535);

这个代码对吗?

再把Unsigned char 转成Unsigned int时不加UNsigned int可以吗?

huangqi412 发表于 2008-7-31 13:43 | 显示全部楼层

倒塌,不要直接用浮点干

 楼主| xilinxer 发表于 2008-8-4 10:27 | 显示全部楼层

要用int来做比较好吗!

李冬发 发表于 2008-8-6 14:32 | 显示全部楼层

单片机里还是只用定点数吧,用长整型好

long Vout;
long Voltage;

Vout = Voltage *(500000l / 65535l);
或Vout = Voltage *(50000l / 65535l);

这样怎么样?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

170

帖子

1

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