|
小弟最近正在玩STC单片机的AD功能 用C语言写了一下小程序 但是出现的一个问题让我感到很惊讶 特地前来求教
首先vin 与vin1都是float的
但是 这段程序Keil编译没问题 但是实际结果是a有数值 b和c都没有数值
vin=(result*5)/256;
temp=vin*100;
a=temp/100;
b=(temp/10)%10;
c=(temp%100)%10;
display_595_1(1,a);
display_595(2,b);
display_595(3,c);
我小小改动了一下程序
vin1=result*5;
vin=vin1/256;
temp=vin*100;
a=temp/100;
b=(temp/10)%10;
c=(temp%100)%10;
display_595_1(1,a);
display_595(2,b);
display_595(3,c);
就是把AD值的计算分成了两步 让我诧异的是这样子分成两步计算 实际结果就是正确的 要是只用一步来计算就会丢失b与c的值 求大侠赐教啊!!!
为什么计算一个值怎么分成两步没有问题 一步就出错呢?????
|
|