想把AD转换结果在12864显示出来,有点问题,大家看看

2020-02-05 09:17发布

我的转换结果处理函数如下:

int ADC_av(uchar ch)
      {
            int ADC_avl=0;
               
       
                uchar num;
                num=10;
                for(num=10;num>0;num--)
                {
                  ADC_avl = ADC_avl +GET_ADCresult(ch);          //GET_ADCresult(ch)是一个ad转换驱动函数的转换结果
                  
                }
                  ADC_avl/=10;                                                         //求10次平均值
                  
                  
                   ADC_CHresult[ch*2] =(ADC_avl*4)/10;           //想把转换结果的十位和个位存在一个数组里面
                   ADC_CHresult[ch*2+1] =(ADC_avl*4)%10;


                  //return(ADC_CHresult[ch] );
           }

但是每次让lcd读取ADC_CHresult[ ] 里面的结果显示的时候,总是显示不出来正确的值,有的是乱码有的是其他东西。有没有
做过的或者懂的帮忙下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
eduhf_123
1楼-- · 2020-02-05 10:01
 精彩回答 2  元偷偷看……
lhcyy
2楼-- · 2020-02-05 14:49
eduhf_123 发表于 2012-5-17 16:22
ADC_avl能保证在25以下么?

如果可能大于25,乘4以后就可能大于100,那么你用“%10”操作将得到其个位, ...

我的采样电压不超过5v其实那个结果乘以4其实是adval*1000/250的意思,想的到流过250电阻的电流值。/ 这个是求模的意思
eduhf_123
3楼-- · 2020-02-05 17:00
lhcyy 发表于 2012-5-17 16:28
我的采样电压不超过5v其实那个结果乘以4其实是adval*1000/250的意思,想的到流过250电阻的电流值。/ 这个 ...

首先没问你adval表示什么意思,你只要考虑它的值是不是会超过25就好。

其次,“/”运算符表示取模?你用的什么C语言教材??
lhcyy
4楼-- · 2020-02-05 20:36
eduhf_123 发表于 2012-5-17 17:53
首先没问你adval表示什么意思,你只要考虑它的值是不是会超过25就好。

其次,“/”运算符表示取模?你用 ...

/是取模这个解释我是在郭天祥的新概念51单片机教程里面看到的。至于上面程序,我是想把得到的采样值变成十进制数,取个位和十位放入数组,然后在lcd显示时候从数组取出应用
USACH
5楼-- · 2020-02-05 21:09
lhcyy 发表于 2012-5-18 09:54
/是取模这个解释我是在郭天祥的新概念51单片机教程里面看到的。至于上面程序,我是想把得到的采样值变成 ...

再去看一遍这个教程……
lhcyy
6楼-- · 2020-02-06 00:05
 精彩回答 2  元偷偷看……

一周热门 更多>