想把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条回答
tlptotop
1楼-- · 2020-02-06 21:55
本帖最后由 tlptotop 于 2012-5-23 09:15 编辑
USACH 发表于 2012-5-18 11:30
我见到的说法是这样的:
取模(或者余数)运算符 (%)  比如  5.1%0.5  余数是  0.1   比如  7%3  余数是1


%是求余(取模),用于计算左操作数除以右操作数的余数。该操作符的操作数只能为整形,包括char short int long类型,以及对应的unsigned类型(C++中还包括bool类型)。所以你举的第一个例子是完全错误的!
zxc2769
2楼-- · 2020-02-07 02:33
取模 取余
xiaobendan001
3楼-- · 2020-02-07 06:39
不管取啥了,反正意思就是转成10进制数了
问一下楼主,ch*2是什么意思?这样操作数组元素会不会产生越界?
lhcyy
4楼-- · 2020-02-07 10:05
 精彩回答 2  元偷偷看……
lhcyy
5楼-- · 2020-02-07 12:00
tlptotop 发表于 2012-5-23 09:13
%是求余(取模),用于计算左操作数除以右操作数的余数。该操作符的操作数只能为整形,包括char short in ...

这位大侠说的对,“/”,“%”两边的确应该是整数。对于小数是不成立的
xiaobendan001
6楼-- · 2020-02-07 16:08
lhcyy 发表于 2012-5-23 11:28
你把ch取“0.1.2.3.4等等”代入就可以i帧到为什么ch*2了,

你的意思是把很多个结果都转换为10进制然后一次按照十位个位的顺序都存到一个数组里面,我问的是这个数组有没有越界操作?

一周热门 更多>