关于超声波模块HC-SR04的程序问题
超声波HCSR04测距, WHILE(1)循环问题
最近在用52单片机学做倒车雷达,程序上遇到了问题导致真实测距不准,求大佬们指点指点!
我用了外部中断的方法来计算高电平时间,但是如果打开while(!Echo)以后系统就死了,关闭整个测距程序正常运行,但会有8CM的误差。相关的程序如下:
void getdistance()
{
EA=1;
EX0=1;
IT0=1;
TF0=0;
TH0=0;
TL0=0;
ET0=1;
openHC();
//while(!Echo);
TR0=1; //???????
delay(20) ;
TR0=0;
EX0=0;
}
void TO2() interrupt 0
{
timeH1=TH0;
timeL1=TL0;
TH0=0;
TL0=0;
flag=1;
}
void timer0() interrupt 1
{
TH0=0;
TL0=0;
}