想把AD转换结果在12864显示出来,有点问题,大家看看
我的转换结果处理函数如下: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 =(ADC_avl*4)/10; //想把转换结果的十位和个位存在一个数组里面
ADC_CHresult =(ADC_avl*4)%10;
//return(ADC_CHresult );
}
但是每次让lcd读取ADC_CHresult[ ] 里面的结果显示的时候,总是显示不出来正确的值,有的是乱码有的是其他东西。有没有
做过的或者懂的帮忙下 ADC_avl能保证在25以下么?
如果可能大于25,乘4以后就可能大于100,那么你用“%10”操作将得到其个位,可用“/10”操作将得到什么呢?还能显示么?? eduhf_123 发表于 2012-5-17 16:22 static/image/common/back.gif
ADC_avl能保证在25以下么?
如果可能大于25,乘4以后就可能大于100,那么你用“%10”操作将得到其个位, ...
我的采样电压不超过5v其实那个结果乘以4其实是adval*1000/250的意思,想的到流过250电阻的电流值。/ 这个是求模的意思 lhcyy 发表于 2012-5-17 16:28 static/image/common/back.gif
我的采样电压不超过5v其实那个结果乘以4其实是adval*1000/250的意思,想的到流过250电阻的电流值。/ 这个 ...
首先没问你adval表示什么意思,你只要考虑它的值是不是会超过25就好。
其次,“/”运算符表示取模?你用的什么C语言教材?? eduhf_123 发表于 2012-5-17 17:53 static/image/common/back.gif
首先没问你adval表示什么意思,你只要考虑它的值是不是会超过25就好。
其次,“/”运算符表示取模?你用 ...
/是取模这个解释我是在郭天祥的新概念51单片机教程里面看到的。至于上面程序,我是想把得到的采样值变成十进制数,取个位和十位放入数组,然后在lcd显示时候从数组取出应用 lhcyy 发表于 2012-5-18 09:54 static/image/common/back.gif
/是取模这个解释我是在郭天祥的新概念51单片机教程里面看到的。至于上面程序,我是想把得到的采样值变成 ...
再去看一遍这个教程…… 本帖最后由 lhcyy 于 2012-5-18 11:13 编辑
USACH 发表于 2012-5-18 10:04 static/image/common/back.gif
再去看一遍这个教程……
可是教程里面好像就是这样的啊上个教程里面的截图
lhcyy 发表于 2012-5-18 11:09 static/image/common/back.gif
可是教程里面好像就是这样的啊上个教程里面的截图
再看一遍吧? 你的数超过了吧 我见到的说法是这样的:
取模(或者余数)运算符 (%)比如5.1%0.5余数是0.1 比如7%3余数是1
除法运算符 (/) 比如6/3 等于2 注:这个是除法……
int ADC_avl=0;改成unsigned int 类型 USACH 发表于 2012-5-18 11:30 static/image/common/back.gif
我见到的说法是这样的:
取模(或者余数)运算符 (%)比如5.1%0.5余数是0.1 比如7%3余数是1
这位兄弟你好好看看看吧。在郭天祥的书里面是用“/”来取得一个数除以另一个数的模,也就是整数部分 lhcyy 发表于 2012-5-21 11:33 static/image/common/back.gif
这位兄弟你好好看看看吧。在郭天祥的书里面是用“/”来取得一个数除以另一个数的模,也就是整数部分
那个叫“取商”,通常我们所说的“取模”指的都是“取余”。 本帖最后由 tlptotop 于 2012-5-23 09:15 编辑
USACH 发表于 2012-5-18 11:30 static/image/common/back.gif
我见到的说法是这样的:
取模(或者余数)运算符 (%)比如5.1%0.5余数是0.1 比如7%3余数是1
%是求余(取模),用于计算左操作数除以右操作数的余数。该操作符的操作数只能为整形,包括char short int long类型,以及对应的unsigned类型(C++中还包括bool类型)。所以你举的第一个例子是完全错误的! 取模 取余
不管取啥了,反正意思就是转成10进制数了
问一下楼主,ch*2是什么意思?这样操作数组元素会不会产生越界? xiaobendan001 发表于 2012-5-23 11:03 static/image/common/back.gif
不管取啥了,反正意思就是转成10进制数了
问一下楼主,ch*2是什么意思?这样操作数组元素会不会产生越界? ...
你把ch取“0.1.2.3.4等等”代入就可以i帧到为什么ch*2了, tlptotop 发表于 2012-5-23 09:13 static/image/common/back.gif
%是求余(取模),用于计算左操作数除以右操作数的余数。该操作符的操作数只能为整形,包括char short in ...
这位大侠说的对,“/”,“%”两边的确应该是整数。对于小数是不成立的 lhcyy 发表于 2012-5-23 11:28 static/image/common/back.gif
你把ch取“0.1.2.3.4等等”代入就可以i帧到为什么ch*2了,
你的意思是把很多个结果都转换为10进制然后一次按照十位个位的顺序都存到一个数组里面,我问的是这个数组有没有越界操作? lhcyy 发表于 2012-5-17 16:28 static/image/common/back.gif
我的采样电压不超过5v其实那个结果乘以4其实是adval*1000/250的意思,想的到流过250电阻的电流值。/ 这个 ...
采样电压不超过5v, 你的模拟参考电压是多少,如果也是5v的话,
你的AD转换值 就在 0-255之间,adval 不能超过25, 经过这样计算的话
你的采样点电压绝对不能超过 (25*5)/255 = 0.49v,
请楼主仔细确认,你的采样电阻的电压有没有超过0.49v
xiaomu 发表于 2012-5-23 12:15 static/image/common/back.gif
采样电压不超过5v, 你的模拟参考电压是多少,如果也是5v的话,
你的AD转换值 就在 0-255之间,adval 不能 ...
我的计算结果是以8位AD为参考的 xiaomu 发表于 2012-5-23 12:15 static/image/common/back.gif
采样电压不超过5v, 你的模拟参考电压是多少,如果也是5v的话,
你的AD转换值 就在 0-255之间,adval 不能 ...
谢谢,首先我上面发的程序里面数据类型发错了。我的adval和函数我都定义为uint,而不是int,在int下的确如你所说。但在uint下可以为65536.所以没问题了。。我采样结果是10位的。现在我已经能分离出十位个个位了。而且也在12864上面都显示出来。
现在遇到的问题是想把结果转换为小数。然后带小数显示在12864上面。这个不知道怎么弄了。求指导下 lhcyy 发表于 2012-5-23 11:29 static/image/common/back.gif
这位大侠说的对,“/”,“%”两边的确应该是整数。对于小数是不成立的
我可没有这么说哟,我只说“%”的两边必须是整数,没有说“/”的两边必须是整数。 本帖最后由 USACH 于 2012-5-24 06:37 编辑
tlptotop 发表于 2012-5-23 09:13 static/image/common/back.gif
%是求余(取模),用于计算左操作数除以右操作数的余数。该操作符的操作数只能为整形,包括char short in ...
不想多说,请看微软vs说明吧。虽然我从来没用过小数,但是确实存在这种用法。
给证据吧:http://msdn.microsoft.com/zh-cn/library/h6zfzfy7(v=vs.80).aspx lhcyy 发表于 2012-5-21 11:33 static/image/common/back.gif
这位兄弟你好好看看看吧。在郭天祥的书里面是用“/”来取得一个数除以另一个数的模,也就是整数部分 ...
好吧,如果你觉得老郭的书才是对的,而且你觉得你看懂啦,那你赢啦,我们都错啦,还不行? USACH 发表于 2012-5-24 06:26 static/image/common/back.gif
不想多说,请看微软vs说明吧。虽然我从来没用过小数,但是确实存在这种用法。
给证据吧:http://msdn.mi ...
是的,这种用法的确存在,但是不是在C / C++中。在51单片板块里,通常是C语言,你这样说,很容易误导初学者。
你提供的证据能证明这种用法在vs里是正确的,但vs支持多种语言,在Jscipt里正确,在C / C++里是错误的。我在14楼说的那句,基本上是 C++ Primer中文版(第四版)里的原话。
下面是 5.1 % 0.5 在VC++2010 和 Keil uV4 里的错误信息:
tlptotop 发表于 2012-5-24 09:30 static/image/common/back.gif
是的,这种用法的确存在,但是不是在C / C++中。在51单片板块里,通常是C语言,你这样说,很容易误导初学 ...
其实我为了说明\%哪是求余数。
页:
[1]