这个程序我已经调试过可以使用,放到数组中应该为了用数码管显示吧
uchar
i=0,j=0,z=0,m=0;
//i-整数位数,j-小数位数
float
a=0,b=0;
//a-整数,b-小数
uint
c=0,d=0;
uchar
k[8]={0};//数组设大一点没关系的
adval=P1
a=ad_vol;
ad_vol=(float)adval*5.0/255
d=a;
c=a;
while(c)
{
k[i]=c%10;
c=c/10;
i++;
}
for(
m=0;m
评论
0
0
加载更多
下面我给你个例子;
我有一个数组da共有4个元素
当i等于0时我将ad_vol赋给da[0]
然后i++;
ad_vol重新获取一个值然后在赋给了da[1];
如此循环直到i=4就结束
da[]={0,0,0,0};
for(i=0;i<4;i++)
{
ad_vol=(float)adval*5.0/255;
da[i]=ad_vol;
}
如果你的采样方式是中断就在中断里面用一个静态变量(static)i或全局变量i,如果你的数组时a,中断里面加一条a[i]=ad_vol,当然这一条在ad_vol=(float)adval*5.0/255之后。如果你的数组长度是10,当i=10是将其清零,这条语句也在中断里。如果用的是查询方式,其实和中断也一样,在ad_vol=(float)adval*5.0/255之后加一条a[i]=ad_vol
这个程序我已经调试过可以使用,放到数组中应该为了用数码管显示吧
uchar i=0,j=0,z=0,m=0; //i-整数位数,j-小数位数
float a=0,b=0; //a-整数,b-小数
uint c=0,d=0;
uchar k[8]={0};//数组设大一点没关系的
adval=P1
a=ad_vol;
ad_vol=(float)adval*5.0/255
d=a;
c=a;
while(c)
{ k[i]=c%10;
c=c/10;
i++;
}
for( m=0;m { c=k[m];
k[m]=k[i-m-1];
k[i-m-1]=c;
}
b=ad_vol-d;
while(i+j<3) //控制位数
{ b=b*10;
c=b;
k[i+j]=c;
j++;
b=b-c;
if(b<0.01) break;
}