|
|
|
@ -138,272 +138,304 @@ double Speed_Judge() |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
void Robot_Move() |
|
|
|
void Robot_Halt(MoveSTATE_t STATE) |
|
|
|
{ |
|
|
|
// 急停版本一
|
|
|
|
if(DHRougheningContrller.Emergency_Stop == 1) |
|
|
|
{ |
|
|
|
GF_BSP_GPIO_SetIO(Out_Vacucm,1); |
|
|
|
GF_BSP_GPIO_SetIO(Out_Lift_1,1); |
|
|
|
GF_BSP_GPIO_SetIO(Out_Lift_2,1); |
|
|
|
|
|
|
|
if(Polish_Count == 100 && polish_Flag == 1) |
|
|
|
{ |
|
|
|
GF_BSP_GPIO_SetIO(Out_Polish,1); |
|
|
|
polish_Flag = 0; |
|
|
|
Polish_Count = 0; |
|
|
|
} |
|
|
|
else if(polish_Flag == 1) |
|
|
|
{ |
|
|
|
GF_BSP_GPIO_SetIO(Out_Polish,0); |
|
|
|
Polish_Count++; |
|
|
|
} |
|
|
|
if(DHRougheningContrller.Horizontal_Task == 1 |
|
|
|
|| DHRougheningContrller.Vertical_Task == 1) |
|
|
|
{ |
|
|
|
GV.AuTo_Flag = 99; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
GV.AuTo_Flag = 0; |
|
|
|
} |
|
|
|
|
|
|
|
CurrentMoveState = Move_Emergency; |
|
|
|
return; |
|
|
|
} |
|
|
|
else if(DHRougheningContrller.Emergency_Stop == 0) |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
if((DHRougheningContrller.LaneChange_Horizontal_Left == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Horizontal_Right == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Vertical_Down == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Vertical_Up == 1)) |
|
|
|
{ |
|
|
|
GV.Chg_Flag = 1; |
|
|
|
Chg_Pa.change_road_finish_flag = 1; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
GV.Chg_Flag = 0; |
|
|
|
Chg_Pa.change_road_finish_flag = 0; |
|
|
|
} |
|
|
|
|
|
|
|
CurrentMoveState = STATE; //停车
|
|
|
|
} |
|
|
|
|
|
|
|
void Robot_ResetJudge() |
|
|
|
{ |
|
|
|
if(DHRougheningContrller.Wireless_State == 0) |
|
|
|
{ |
|
|
|
return; |
|
|
|
} |
|
|
|
if((DHRougheningContrller.LaneChange_Horizontal_Left == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Horizontal_Right == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Down == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Up == 0 |
|
|
|
&& DHRougheningContrller.Vertical_Task == 0 |
|
|
|
&& DHRougheningContrller.Horizontal_Task ==0) |
|
|
|
&& DHRougheningContrller.Forwards == 0 |
|
|
|
&& DHRougheningContrller.Backwards == 0 |
|
|
|
&& DHRougheningContrller.Left_Turn == 0 |
|
|
|
&& DHRougheningContrller.Right_Turn == 0 |
|
|
|
&& DHRougheningContrller.Roughening_Start == 0 |
|
|
|
&& DHRougheningContrller.End_Down == 0 |
|
|
|
&& DHRougheningContrller.End_Up == 0) |
|
|
|
{ |
|
|
|
GV.Robot_Move_Step = 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// //运动部分 Move Region
|
|
|
|
if((DHRougheningContrller.LaneChange_Horizontal_Left == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Horizontal_Right == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Vertical_Down == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Vertical_Up == 1 |
|
|
|
|| DHRougheningContrller.Vertical_Task == 1 |
|
|
|
|| DHRougheningContrller.Horizontal_Task ==1) |
|
|
|
&& DHRougheningContrller.Forwards == 0 |
|
|
|
&& DHRougheningContrller.Backwards == 0 |
|
|
|
&& DHRougheningContrller.Left_Turn == 0 |
|
|
|
&& DHRougheningContrller.Right_Turn == 0) |
|
|
|
void Robot_Move() |
|
|
|
{ |
|
|
|
// 急停版本一
|
|
|
|
if(DHRougheningContrller.Emergency_Stop == 1) |
|
|
|
{ |
|
|
|
if(DHRougheningContrller.LaneChange_Horizontal_Left == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Horizontal_Right == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Down == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Up == 0 |
|
|
|
&& (DHRougheningContrller.Vertical_Task == 1 |
|
|
|
|| DHRougheningContrller.Horizontal_Task == 1)) //自动作业与换道互斥
|
|
|
|
GF_BSP_GPIO_SetIO(Out_Vacucm,1); |
|
|
|
GF_BSP_GPIO_SetIO(Out_Lift_1,1); |
|
|
|
GF_BSP_GPIO_SetIO(Out_Lift_2,1); |
|
|
|
|
|
|
|
if(Polish_Count == 100 && polish_Flag == 1) |
|
|
|
{ |
|
|
|
if(DHRougheningContrller.Horizontal_Task == 1) |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_AutoForward; |
|
|
|
if(GV.AuTo_Flag == 0) |
|
|
|
{ |
|
|
|
GV.AuTo_Flag=1; |
|
|
|
} |
|
|
|
} |
|
|
|
else if(DHRougheningContrller.Vertical_Task == 1) |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_AutoBackward; |
|
|
|
if(GV.AuTo_Flag == 0) |
|
|
|
{ |
|
|
|
GV.AuTo_Flag=3; |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_HALT;//停车
|
|
|
|
} |
|
|
|
GF_BSP_GPIO_SetIO(Out_Polish,1); |
|
|
|
polish_Flag = 99; |
|
|
|
Polish_Count = 0; |
|
|
|
} |
|
|
|
else if((DHRougheningContrller.LaneChange_Horizontal_Left == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Horizontal_Right == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Vertical_Down == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Vertical_Up == 1) |
|
|
|
&& (DHRougheningContrller.Vertical_Task == 0 |
|
|
|
&& DHRougheningContrller.Horizontal_Task == 0)) |
|
|
|
else if(polish_Flag == 1) |
|
|
|
{ |
|
|
|
if(GV.Chg_Flag == 1 |
|
|
|
&& (DHRougheningContrller.LaneChange_Horizontal_Left == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Horizontal_Right == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Vertical_Down == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Vertical_Up == 1)) |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_ChgFinish; |
|
|
|
} |
|
|
|
else if(DHRougheningContrller.LaneChange_Horizontal_Left == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Horizontal_Right == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Down == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Up == 1 ) |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_ChgUp; |
|
|
|
} |
|
|
|
else if(DHRougheningContrller.LaneChange_Horizontal_Left == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Horizontal_Right == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Down == 1 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Up == 0 ) |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_ChgDown; |
|
|
|
} |
|
|
|
else if(DHRougheningContrller.LaneChange_Horizontal_Left == 1 |
|
|
|
&& DHRougheningContrller.LaneChange_Horizontal_Right == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Down == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Up == 0 ) |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_ChgLeft; |
|
|
|
} |
|
|
|
else if(DHRougheningContrller.LaneChange_Horizontal_Left == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Horizontal_Right == 1 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Down == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Up == 0 ) |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_ChgRight; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_HALT;//停车
|
|
|
|
} |
|
|
|
GF_BSP_GPIO_SetIO(Out_Polish,0); |
|
|
|
Polish_Count++; |
|
|
|
} |
|
|
|
else |
|
|
|
Robot_Halt(Move_Emergency); |
|
|
|
return; |
|
|
|
} |
|
|
|
else if(DHRougheningContrller.Emergency_Stop == 0) |
|
|
|
{ |
|
|
|
if(DHRougheningContrller.Roughening_Stop && polish_Flag == 99) |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_HALT;//停车
|
|
|
|
polish_Flag = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
else if((DHRougheningContrller.LaneChange_Horizontal_Left == 0 |
|
|
|
|
|
|
|
|
|
|
|
//运动部分 Move Region
|
|
|
|
if((DHRougheningContrller.LaneChange_Horizontal_Left == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Horizontal_Right == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Vertical_Down == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Vertical_Up == 1 |
|
|
|
|| DHRougheningContrller.Vertical_Task == 1 |
|
|
|
|| DHRougheningContrller.Horizontal_Task ==1) |
|
|
|
&& DHRougheningContrller.Forwards == 0 |
|
|
|
&& DHRougheningContrller.Backwards == 0 |
|
|
|
&& DHRougheningContrller.Left_Turn == 0 |
|
|
|
&& DHRougheningContrller.Right_Turn == 0) |
|
|
|
{ |
|
|
|
if(DHRougheningContrller.LaneChange_Horizontal_Left == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Horizontal_Right == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Down == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Up == 0 |
|
|
|
&& DHRougheningContrller.Vertical_Task == 0 |
|
|
|
&& DHRougheningContrller.Horizontal_Task == 0) |
|
|
|
&& (DHRougheningContrller.Forwards == 1 |
|
|
|
|| DHRougheningContrller.Backwards == 1 |
|
|
|
|| DHRougheningContrller.Left_Turn == 1 |
|
|
|
|| DHRougheningContrller.Right_Turn == 1)) |
|
|
|
&& (DHRougheningContrller.Vertical_Task == 1 |
|
|
|
|| DHRougheningContrller.Horizontal_Task == 1)) //自动作业与换道互斥
|
|
|
|
{ |
|
|
|
if (DHRougheningContrller.Left_Turn == 0 |
|
|
|
&& DHRougheningContrller.Right_Turn == 0)//前进周围300范围内才继续检测前进是否按下
|
|
|
|
{ |
|
|
|
if (DHRougheningContrller.Forwards == 1)//前进
|
|
|
|
if(DHRougheningContrller.Horizontal_Task == 1) |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_AutoForward; |
|
|
|
if(GV.AuTo_Flag == 0) |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_Forwards; |
|
|
|
GV.AuTo_Flag=1; |
|
|
|
} |
|
|
|
else if (DHRougheningContrller.Backwards == 1) |
|
|
|
} |
|
|
|
else if(DHRougheningContrller.Vertical_Task == 1) |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_AutoBackward; |
|
|
|
if(GV.AuTo_Flag == 0) |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_Backwards; //后退
|
|
|
|
GV.AuTo_Flag=3; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_HALT;//停车
|
|
|
|
} |
|
|
|
} |
|
|
|
else if (DHRougheningContrller.Forwards == 0 |
|
|
|
&& DHRougheningContrller.Backwards == 0) |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_HALT;//停车
|
|
|
|
} |
|
|
|
} |
|
|
|
else if((DHRougheningContrller.LaneChange_Horizontal_Left == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Horizontal_Right == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Vertical_Down == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Vertical_Up == 1) |
|
|
|
&& (DHRougheningContrller.Vertical_Task == 0 |
|
|
|
&& DHRougheningContrller.Horizontal_Task == 0)) |
|
|
|
{ |
|
|
|
if(GV.Chg_Flag == 1 |
|
|
|
&& (DHRougheningContrller.LaneChange_Horizontal_Left == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Horizontal_Right == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Vertical_Down == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Vertical_Up == 1)) |
|
|
|
{ |
|
|
|
if (DHRougheningContrller.Right_Turn == 1) |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_TurnRight; //右转
|
|
|
|
} |
|
|
|
else if (DHRougheningContrller.Left_Turn == 1) |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_TurnLeft; //左转
|
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_HALT; //停车
|
|
|
|
} |
|
|
|
CurrentMoveState = Move_ChgFinish; |
|
|
|
} |
|
|
|
else |
|
|
|
else if(DHRougheningContrller.LaneChange_Horizontal_Left == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Horizontal_Right == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Down == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Up == 1 ) |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_HALT; //停车
|
|
|
|
CurrentMoveState = Move_ChgUp; |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
|
|
|
|
if(DHRougheningContrller.Horizontal_Task == 1 |
|
|
|
|| DHRougheningContrller.Vertical_Task == 1) |
|
|
|
else if(DHRougheningContrller.LaneChange_Horizontal_Left == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Horizontal_Right == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Down == 1 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Up == 0 ) |
|
|
|
{ |
|
|
|
GV.AuTo_Flag = 99; |
|
|
|
CurrentMoveState = Move_ChgDown; |
|
|
|
} |
|
|
|
else |
|
|
|
else if(DHRougheningContrller.LaneChange_Horizontal_Left == 1 |
|
|
|
&& DHRougheningContrller.LaneChange_Horizontal_Right == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Down == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Up == 0 ) |
|
|
|
{ |
|
|
|
GV.AuTo_Flag = 0; |
|
|
|
CurrentMoveState = Move_ChgLeft; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if((DHRougheningContrller.LaneChange_Horizontal_Left == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Horizontal_Right == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Vertical_Down == 1 |
|
|
|
|| DHRougheningContrller.LaneChange_Vertical_Up == 1)) |
|
|
|
else if(DHRougheningContrller.LaneChange_Horizontal_Left == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Horizontal_Right == 1 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Down == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Up == 0 ) |
|
|
|
{ |
|
|
|
GV.Chg_Flag = 1; |
|
|
|
Chg_Pa.change_road_finish_flag = 1; |
|
|
|
CurrentMoveState = Move_ChgRight; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
GV.Chg_Flag = 0; |
|
|
|
Chg_Pa.change_road_finish_flag = 0; |
|
|
|
CurrentMoveState = Move_HALT;//停车
|
|
|
|
} |
|
|
|
|
|
|
|
CurrentMoveState = Move_HALT; //停车
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
void GF_Dispatch()//2ms调用一次 给车体速度等赋值
|
|
|
|
{ |
|
|
|
Robot_Move(); |
|
|
|
/****************************************/ |
|
|
|
|
|
|
|
//LU_Single 控制打磨电机
|
|
|
|
if(DHRougheningContrller.Roughening_Start && polish_Flag == 0) |
|
|
|
else |
|
|
|
{ |
|
|
|
GF_BSP_GPIO_SetIO(Out_Vacucm,0); |
|
|
|
GF_BSP_GPIO_SetIO(Out_Polish,0); |
|
|
|
if(Polish_Count == 100) |
|
|
|
CurrentMoveState = Move_HALT;//停车
|
|
|
|
} |
|
|
|
} |
|
|
|
else if((DHRougheningContrller.LaneChange_Horizontal_Left == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Horizontal_Right == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Down == 0 |
|
|
|
&& DHRougheningContrller.LaneChange_Vertical_Up == 0 |
|
|
|
&& DHRougheningContrller.Vertical_Task == 0 |
|
|
|
&& DHRougheningContrller.Horizontal_Task == 0) |
|
|
|
|
|
|
|
&& (DHRougheningContrller.Forwards == 1 |
|
|
|
|| DHRougheningContrller.Backwards == 1 |
|
|
|
|| DHRougheningContrller.Left_Turn == 1 |
|
|
|
|| DHRougheningContrller.Right_Turn == 1)) |
|
|
|
{ |
|
|
|
if (DHRougheningContrller.Left_Turn == 0 |
|
|
|
&& DHRougheningContrller.Right_Turn == 0)//前进周围300范围内才继续检测前进是否按下
|
|
|
|
{ |
|
|
|
if (DHRougheningContrller.Forwards == 1)//前进
|
|
|
|
{ |
|
|
|
CurrentMoveState = Move_Forwards; |
|
|
|
} |
|
|
|
else if (DHRougheningContrller.Backwards == 1) |
|
|
|
{ |
|
|
|
GF_BSP_GPIO_SetIO(Out_Polish,1); |
|
|
|
polish_Flag = 1; |
|
|
|
CurrentMoveState = Move_Backwards; //后退
|
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
Polish_Count++; |
|
|
|
CurrentMoveState = Move_HALT;//停车
|
|
|
|
} |
|
|
|
} |
|
|
|
else if(DHRougheningContrller.Roughening_Stop && polish_Flag == 1) |
|
|
|
else if (DHRougheningContrller.Forwards == 0 |
|
|
|
&& DHRougheningContrller.Backwards == 0) |
|
|
|
{ |
|
|
|
GF_BSP_GPIO_SetIO(Out_Vacucm,1); |
|
|
|
GF_BSP_GPIO_SetIO(Out_Polish,0); |
|
|
|
if(Polish_Count == 100) |
|
|
|
if (DHRougheningContrller.Right_Turn == 1) |
|
|
|
{ |
|
|
|
CurrentMoveState = Move_TurnRight; //右转
|
|
|
|
} |
|
|
|
else if (DHRougheningContrller.Left_Turn == 1) |
|
|
|
{ |
|
|
|
GF_BSP_GPIO_SetIO(Out_Polish,1); |
|
|
|
polish_Flag = 0; |
|
|
|
CurrentMoveState = Move_TurnLeft; //左转
|
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
Polish_Count++; |
|
|
|
CurrentMoveState = Move_HALT; //停车
|
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
Polish_Count=0; |
|
|
|
CurrentMoveState = Move_HALT; //停车
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//LU_Three控制打磨升降
|
|
|
|
if(DHRougheningContrller.End_Up) |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
Robot_Halt(Move_HALT); //停车
|
|
|
|
} |
|
|
|
/****************************************/ |
|
|
|
//LU_Single 控制打磨电机
|
|
|
|
if(DHRougheningContrller.Roughening_Start && polish_Flag == 0) |
|
|
|
{ |
|
|
|
GF_BSP_GPIO_SetIO(Out_Vacucm,0); |
|
|
|
GF_BSP_GPIO_SetIO(Out_Polish,0); |
|
|
|
if(Polish_Count == 100) |
|
|
|
{ |
|
|
|
GF_BSP_GPIO_SetIO(Out_Lift_1,0); |
|
|
|
GF_BSP_GPIO_SetIO(Out_Lift_2,1); |
|
|
|
GF_BSP_GPIO_SetIO(Out_Polish,1); |
|
|
|
polish_Flag = 1; |
|
|
|
} |
|
|
|
else if(DHRougheningContrller.End_Down) |
|
|
|
else |
|
|
|
{ |
|
|
|
GF_BSP_GPIO_SetIO(Out_Lift_1,1); |
|
|
|
GF_BSP_GPIO_SetIO(Out_Lift_2,0); |
|
|
|
Polish_Count++; |
|
|
|
} |
|
|
|
} |
|
|
|
else if(DHRougheningContrller.Roughening_Stop && polish_Flag == 1) |
|
|
|
{ |
|
|
|
GF_BSP_GPIO_SetIO(Out_Vacucm,1); |
|
|
|
GF_BSP_GPIO_SetIO(Out_Polish,0); |
|
|
|
if(Polish_Count == 100) |
|
|
|
{ |
|
|
|
GF_BSP_GPIO_SetIO(Out_Polish,1); |
|
|
|
polish_Flag = 0; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
GF_BSP_GPIO_SetIO(Out_Lift_1,1); |
|
|
|
GF_BSP_GPIO_SetIO(Out_Lift_2,1); |
|
|
|
Polish_Count++; |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
Polish_Count=0; |
|
|
|
} |
|
|
|
|
|
|
|
//LU_Three控制打磨升降
|
|
|
|
if(DHRougheningContrller.End_Up) |
|
|
|
{ |
|
|
|
GF_BSP_GPIO_SetIO(Out_Lift_1,0); |
|
|
|
GF_BSP_GPIO_SetIO(Out_Lift_2,1); |
|
|
|
} |
|
|
|
else if(DHRougheningContrller.End_Down) |
|
|
|
{ |
|
|
|
GF_BSP_GPIO_SetIO(Out_Lift_1,1); |
|
|
|
GF_BSP_GPIO_SetIO(Out_Lift_2,0); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
GF_BSP_GPIO_SetIO(Out_Lift_1,1); |
|
|
|
GF_BSP_GPIO_SetIO(Out_Lift_2,1); |
|
|
|
} |
|
|
|
} |
|
|
|
void GF_Dispatch()//2ms调用一次 给车体速度等赋值
|
|
|
|
{ |
|
|
|
switch(GV.Robot_Move_Step) |
|
|
|
{ |
|
|
|
case 0: |
|
|
|
Robot_ResetJudge(); |
|
|
|
break; |
|
|
|
case 1: |
|
|
|
Robot_Move(); |
|
|
|
default: |
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
IV.Robot_CurrentState = CurrentMoveState; |
|
|
|
|
|
|
|
|