按照顺序执行后,第一个电机正常,但是第二个电机不转,相应if语句里灯的变化正常,求问是怎么回事
void jiance()
{ GPIO_MOTOR=0x99;
while(1)
{
if(p00==0&&p01==0&&p03==1&&L3==0) //p00检测到有托盘要进入 ,p01检测内部没有托盘,p02检测内部没有零部件
{
L1=1; //L1表示当前工位内部有托盘,开始工作
L2=0; //L2不亮不启用p02
SETP_MOTOR_QZ(); //前端正转
delay(10);
}
if(p00==1&&p01==1&&p03==1&&L1==1&&L2==0&&L3==0) //p00检测到没有托盘要进入 ,p01检测内部有,p02检测没有且已经打开过前端开关
{
SETP_MOTOR_QF(); //前端反转 ,防止后边托盘进入
delay(10);
L2=1; //L2亮p02 起作用
}
if(p03==1&&L1==1&&L2==1&&L3==0) //p00检测到没有托盘要进入,p01检测内部有,p02检测内部没有零部件
{
if(p02==0)
{
SETP_MOTOR_QZ(); //后端正转 ,直接离开
delay(10);
}
elseL3=1;
}
if(L3==1&&K3==0)
{ // (p00==1&&p01==0&&p02==0&&p03==1)p00
SETP_MOTOR_HZ(); //后端正转
delay(10);
L3=0;
}
if(p00==1&&p03==0) //p00检测到没有托盘要进入 ,p01检测内部没有,p02检测内部没有零部件,p03检测已经离开
{
SETP_MOTOR_QF();
L1=0;
L2=0;
delay(10);
}
}
return;
}
|