hc-sr04超声波测距程序老是跑飞,求助。
时间:10-02
整理:3721RD
点击:
我用51单片机做芯片,数码管在中断中动态显示,经测试,数码管显示正常,数据处理函数正常。
但下面的程序老是跑飞,开机数码管显示几次就跑飞了。是整个程序跑飞,跑飞后中断是进不去的。
求解答
void HC_SR04(unsigned char *buffer)
{
if(Flag_HC_SR04_Set == 1)
{
uint32 distance;
Flag_HC_SR04_Set = 0;
Trig = 1;
delay();
Trig = 0;
Echo = 1;
while(!Echo)
{
}
TR1 = 1;
while(Echo)
{
}
TR1 = 0;
distance = ((TH1 * 256) + TL1) * 1.87 / 100;
SEG_LED_Dispose(distance,buffer); //将数据转成数码管显示数据
TH1 = 0;
TL1 = 0;
}
}
但下面的程序老是跑飞,开机数码管显示几次就跑飞了。是整个程序跑飞,跑飞后中断是进不去的。
求解答
void HC_SR04(unsigned char *buffer)
{
if(Flag_HC_SR04_Set == 1)
{
uint32 distance;
Flag_HC_SR04_Set = 0;
Trig = 1;
delay();
Trig = 0;
Echo = 1;
while(!Echo)
{
}
TR1 = 1;
while(Echo)
{
}
TR1 = 0;
distance = ((TH1 * 256) + TL1) * 1.87 / 100;
SEG_LED_Dispose(distance,buffer); //将数据转成数码管显示数据
TH1 = 0;
TL1 = 0;
}
}
Echo = 1;
while(!Echo)
{
TR1 = 1;
}
while(Echo)
{
TR1 = 0;
}
?
请问有何见解?
仿真跟一下