void main (void)
{
unsigned char i,pulse_num;
Init_Timer0();
IRSend_A=0; //关闭2个发射管
IRSend_B=0;
while (1) //主循环
{
if(Flag)
{
pulse_num=0; //脉冲计数
for(i=0;i<30;i++)
{
IRSend_A=1;//打开A发射
DelayUs2x(150);
if(! IRRev)
pulse_num++;
IRSend_A=0;//关闭A发射
DelayUs2x(150);
}
if(pulse_num>25)
LED_A=0;//如果判断有障碍,点亮LED_A指示,否则熄灭
else
LED_A=1;
pulse_num=0;//清零脉冲计数
for(i=0;i<30;i++)
{
IRSend_B=1;//打开B发射
DelayUs2x(150);
if(! IRRev)
pulse_num++;
IRSend_B=0;//关闭B发射
DelayUs2x(150);
}
if(pulse_num>25)
LED_B=0;//如果判断有障碍,点亮LED_B指示,否则熄灭
else
LED_B=1;
}
}
}
不明白为什么上面的DelayUs2x(150)必须是150;不然就无法检测障碍物 |