大神帮我看下这段adc转换代码有没有错啊

[复制链接]
1735|12
 楼主| srlovemi 发表于 2014-5-17 00:12 | 显示全部楼层 |阅读模式
一直显示不出正常气压
void main()
{     
      uchar c;
      uint bai,sh,ge,xiaoshu;
           long adval;                         //为得到小数部分,使用长整形数
      LCD_Initialise();
      DelayMS(10);
      Display_LCD_String(0x00,Line1);
      Display_LCD_String(0x46,Display_Buffer);
      HIGH=0;
           LOW=0;     

     while(1)
     {
          c=adc0832(0);
                   adval=c;
                   adval=adval*10;                         //将数值扩大10倍得到小数
          adval=((adval-100)*1000/2360)+150;         //将电压值转换为压力值   
          bai=adval/1000 ;                                 //分离出百位
          sh=adval%1000/100;                               //分离出十位
          ge=adval%100/10;                                 //分离出个位
                     xiaoshu=adval%10        ;                            //分离出小数位
 楼主| srlovemi 发表于 2014-5-17 00:13 | 显示全部楼层
:'(就快答辩了  好纠结啊
 楼主| srlovemi 发表于 2014-5-17 00:38 | 显示全部楼层
求大神助我一臂之力啊
dirtwillfly 发表于 2014-5-17 09:15 | 显示全部楼层
不清楚有没有问题,因为不知道adc0832(0)这个函数是什么情况
限量_个性。 发表于 2014-5-17 10:17 | 显示全部楼层
LZ应该把问题描述清楚啊,什么是不能显示正常气压值呢,首先AD转换可对了呢,然后再检查电压-气压的转换代码。
ningling_21 发表于 2014-5-17 11:19 | 显示全部楼层
硬件有没有问题?
 楼主| srlovemi 发表于 2014-5-17 12:16 | 显示全部楼层
dirtwillfly 发表于 2014-5-17 09:15
不清楚有没有问题,因为不知道adc0832(0)这个函数是什么情况

adc0832()就是adc采集函数
 楼主| srlovemi 发表于 2014-5-17 12:17 | 显示全部楼层
限量_个性。 发表于 2014-5-17 10:17
LZ应该把问题描述清楚啊,什么是不能显示正常气压值呢,首先AD转换可对了呢,然后再检查电压-气压的转换代 ...

这个程序里主要是不知道adval=((adval-100)*1000/2360)+150; 这个公式是怎么来的   显示不正常的意思就是显示的数值与现在的气压不一样,差了一倍。
 楼主| srlovemi 发表于 2014-5-17 12:18 | 显示全部楼层
ningling_21 发表于 2014-5-17 11:19
硬件有没有问题?

应该没问题,查了好多遍了 而且也换了两个传感器了
ningling_21 发表于 2014-5-17 13:34 | 显示全部楼层
srlovemi 发表于 2014-5-17 12:17
这个程序里主要是不知道adval=((adval-100)*1000/2360)+150; 这个公式是怎么来的   显示不正常的意思就是 ...

差一倍,说明算法错了,纠正一下就可以了...
ayb_ice 发表于 2014-5-17 17:18 | 显示全部楼层
读出ad值,

手动算一遍与程序算对一遍,

问题不就知道了在哪里了

zhongfabai 发表于 2014-5-17 17:43 | 显示全部楼层
uint bai,sh,ge,xiaoshu;
           long adval;
****************************************************************
bai=adval/1000 ;                                 //分离出百位
          sh=adval%1000/100;                               //分离出十位
          ge=adval%100/10;                                 //分离出个位
                     xiaoshu=adval%10   
loliweive 发表于 2014-5-18 11:54 | 显示全部楼层
改一改这句:          adval=((adval-100)*1000/2360)+150;         //将电压值转换为压力值  
try try
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

9

帖子

0

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