打印

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

[复制链接]
2133|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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

粉丝