
stc89c52控制三个超声波模块工作
分时工作,可是到最后一个模块工作时,所测得距离的总是保持在一个范围内,比如设置第三个模块的测得的距离在50cm内是电机倒转,50cm外,电机正转,实际测得时电机总是在倒转...
分时工作,可是到最后一个模块工作时,所测得距离的总是保持在一个范围内,比如设置第三个模块的测得的距离在50cm内是电机倒转,50cm外,电机正转,实际测得时电机总是在倒转,就算该方向没有障碍物,依然倒转,很疑惑,妄大神解决,模块均没有损坏。
附主函数和延时函数
void main()
{ init();
while(1)
{
StartModule1();
while(!ECHO1);
TR1=1;
while(ECHO1);
TR1=0;
Conut1();
delay(800);
StartModule2();
while(!ECHO2);
TR1=1;
while(ECHO2);
TR1=0;
Conut2();
delay(2000);
StartModule3();
while(!ECHO3);
TR1=1;
while(ECHO3);
TR1=0;
Conut3();
delay(5000);
}
}
void delay(uchar x)
{
uint a,b;
for(a=x;a>0;a--)
for(b=100;b>0;b--);
} 展开
附主函数和延时函数
void main()
{ init();
while(1)
{
StartModule1();
while(!ECHO1);
TR1=1;
while(ECHO1);
TR1=0;
Conut1();
delay(800);
StartModule2();
while(!ECHO2);
TR1=1;
while(ECHO2);
TR1=0;
Conut2();
delay(2000);
StartModule3();
while(!ECHO3);
TR1=1;
while(ECHO3);
TR1=0;
Conut3();
delay(5000);
}
}
void delay(uchar x)
{
uint a,b;
for(a=x;a>0;a--)
for(b=100;b>0;b--);
} 展开
1个回答
展开全部
延时函数参数类型!试把最后的5000也改为2000
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询