void Tracking(unsigned char*flag1,unsigned char*flag2)
{
//为0 没有识别到黑线 为1识别到黑线
char data1,data6,data2 = left_led1,data3 = right_led1,data4 = left_led11,data5 = right_led22;
data1=data2*10+data3;
data6=data4*10+data5;
if(data1 == 0 && data6 == 11)
{
forward(200,200);
}
if(data1 == 0 && data6 ==0)
{
forward(200,200);
if(*flag2!=0)
*flag1+=1;
}
if(data6 == 0||data6 == 11)
{
if(data1 == 10)
{
left_run(90,125);
}
if(data1 == 1)
{
right_run(120,90);
}
}
if(data6 == 10)
{
left_run(70,150);
}
if(data6 == 1)
{
right_run(150,70);
}
if(data1 == 11&&data6 == 11)
{
forward(200,200);
*flag2+=1;
}
if(data1 == 10&&data6 == 10)
left_run(90,125);
}
/*主函数*/
void main(void)
{ int u=1;
char flag1=0,flag2=0,flag3=0;
char *a;
char *b;
char *c;
a=&flag1;
b=&flag2;
c=&flag3;
Timer0_Init();//定时0初始化
while(u)
{
Tracking(a,b);
if(flag1>0)
{
flag1=0;
flag2=0;
flag3+=1;
}
if(flag3==1)
{ |