stc89c52 单片机 的两个超声波模块分时运行问题 10
voidConut2(){time_2=TH1*256+TL1;TH1=0;TL1=0;S2=(time_2*1.85)/100;//算出来是CMif((S2>=700)...
void Conut2()
{
time_2=TH1*256+TL1;
TH1=0;
TL1=0;
S2=(time_2*1.85)/100; //算出来是CM
if((S2>=700)&&flag==1)
{
flag=0;
}
if(S2<=50&&S2>=0)
{
TR0=0;
fun3();
while(k<=30000)
{
k++;
left();
}
fun3();
delay(1000);
k=0;
TR0=1;
}
}
void main()
{
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=0;
TL1=0;
EA=1;
ET0=1;
TR0=1;
ET1=1;
TR1=1;
while(1)
{
StartModule1();
while(!ECHO1);
TR1=1;
while(ECHO1);
TR1=0;
Conut1();
delay(10);
StartModule2();
while(!ECHO2);
TR1=1;
while(ECHO2);
TR1=0;
Conut2();
}
}
void time1() interrupt 3
{
flag=1;
}为什么这样做之后conut2中的程序就无法运行,应该是向左转,但实际却达到if标准后却不动? 展开
{
time_2=TH1*256+TL1;
TH1=0;
TL1=0;
S2=(time_2*1.85)/100; //算出来是CM
if((S2>=700)&&flag==1)
{
flag=0;
}
if(S2<=50&&S2>=0)
{
TR0=0;
fun3();
while(k<=30000)
{
k++;
left();
}
fun3();
delay(1000);
k=0;
TR0=1;
}
}
void main()
{
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=0;
TL1=0;
EA=1;
ET0=1;
TR0=1;
ET1=1;
TR1=1;
while(1)
{
StartModule1();
while(!ECHO1);
TR1=1;
while(ECHO1);
TR1=0;
Conut1();
delay(10);
StartModule2();
while(!ECHO2);
TR1=1;
while(ECHO2);
TR1=0;
Conut2();
}
}
void time1() interrupt 3
{
flag=1;
}为什么这样做之后conut2中的程序就无法运行,应该是向左转,但实际却达到if标准后却不动? 展开
3个回答
展开全部
兄弟你是怎么解决的啊??我也遇到了一样的问题啊~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
想办法去了delay的死等.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关注这个问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询