调用xunji那块不好使,而调用其他转弯啦,直走啦,停止啦,都可以,为啥循迹不好使呢,请帮我分析一下,谢谢,可以加分xunji()本来是main()的,然后while(1)我也去掉了。。
字数有限制,只能上传一部分程序
// #include <AT89X52.h>
/************************************************************************/
void delay1(unsigned int k) //延时函数
{
unsigned int x,y;
for(x=0;x<k;x++)
for(y=0;y<2000;y++);
}
/************************************************************************/
void run(void) //前进函数
{
push_val_left =2; //PWM 调节参数1-10 1为最慢,10是最快 改这个值可以改变其速度
push_val_right =2; //PWM 调节参数1-10 1为最慢,10是最快 改这个值可以改变其速度
Left_moto_go ; //左电机前进
Right_moto_go ; //右电机前进
}
/***************************************************/
void xunji(void)
{
TMOD=0X01;
TH0= 0XF8; //1ms定时
TL0= 0X30;
TR0= 1;
ET0= 1;
EA = 1;
//while(1) /*无限循环*/
//四路寻迹传感器有信号(白线)为0 没有信号(黑线)为1
switch(P0&0x0f)
{
case 0x00: // 全部没有压线,直转
run();
break;
case 0x01: // 右压线,左转
left();
delay1(2);
break;
case 0x02: // 右压线,左转
left();
delay1(2);
break;
case 0x04: // 左压线,右转
right();
delay1(2); //转向延时
break;
case 0x08: // 左压线,右转
right();
delay1(2); //转向延时
break;
case 0x0f: //
stop();
delay1(6);
break;
default:
break;
}
}
MYYA
弑天下
相关分类