打印

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

[复制链接]
1468|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)这个函数是什么情况

使用特权

评论回复
5
限量_个性。| | 2014-5-17 10:17 | 只看该作者
LZ应该把问题描述清楚啊,什么是不能显示正常气压值呢,首先AD转换可对了呢,然后再检查电压-气压的转换代码。

使用特权

评论回复
6
ningling_21| | 2014-5-17 11:19 | 只看该作者
硬件有没有问题?

使用特权

评论回复
7
srlovemi|  楼主 | 2014-5-17 12:16 | 只看该作者
dirtwillfly 发表于 2014-5-17 09:15
不清楚有没有问题,因为不知道adc0832(0)这个函数是什么情况

adc0832()就是adc采集函数

使用特权

评论回复
8
srlovemi|  楼主 | 2014-5-17 12:17 | 只看该作者
限量_个性。 发表于 2014-5-17 10:17
LZ应该把问题描述清楚啊,什么是不能显示正常气压值呢,首先AD转换可对了呢,然后再检查电压-气压的转换代 ...

这个程序里主要是不知道adval=((adval-100)*1000/2360)+150; 这个公式是怎么来的   显示不正常的意思就是显示的数值与现在的气压不一样,差了一倍。

使用特权

评论回复
9
srlovemi|  楼主 | 2014-5-17 12:18 | 只看该作者
ningling_21 发表于 2014-5-17 11:19
硬件有没有问题?

应该没问题,查了好多遍了 而且也换了两个传感器了

使用特权

评论回复
10
ningling_21| | 2014-5-17 13:34 | 只看该作者
srlovemi 发表于 2014-5-17 12:17
这个程序里主要是不知道adval=((adval-100)*1000/2360)+150; 这个公式是怎么来的   显示不正常的意思就是 ...

差一倍,说明算法错了,纠正一下就可以了...

使用特权

评论回复
11
ayb_ice| | 2014-5-17 17:18 | 只看该作者
读出ad值,

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

问题不就知道了在哪里了

使用特权

评论回复
12
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   

使用特权

评论回复
13
loliweive| | 2014-5-18 11:54 | 只看该作者
改一改这句:          adval=((adval-100)*1000/2360)+150;         //将电压值转换为压力值  
try try

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

9

帖子

0

粉丝