初级会员

- 积分
- 51
- 金钱
- 51
- 注册时间
- 2015-3-1
- 在线时间
- 4 小时
|
5金钱
主函数的一部分如下
while(1)
{
if(measure_flag==1)
{
measure_flag=0;
measure_start();
}
if (distance_i==10)
{
distance_i=0;
distance=compute_distance();
printf("%f cm ",distance);
}
}
问题就出在这一句上:distance=compute_distance();
compute_distance函数
double compute_distance(void)
{
u8 i,j=0;
u32 real_count=0;
extern u16 distance_count[10];
double real_distance=0;
for(i=0;i<10;i++)
{
if(120<distance_count && distance_count<48000)
{
real_count+=distance_count;
j++;
}
distance_count=0;
}
real_distance=17*(real_count/j)/1000;
//printf("count %d ",real_count);
printf("dis %f ",real_distance);
return(real_distance);
}
在compute_distance中显示的值和在主函数中显示的值不同,主函数中的值总是为0.如下:
dis 86.000000 0.000000 cm 。
实在想不明白原因。
|
|