|
|
|
@ -147,56 +147,94 @@ static InputEvent CalculateRockerEvent(void) |
|
|
|
return INPUT_ROCKER_STOP; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 摇杆事件计算
|
|
|
|
static InputEvent Check_Emergency_Event(void) |
|
|
|
{ |
|
|
|
if(P_MK32->CH8_SE==-1000&&P_MK32->CH9_SF==-1000) |
|
|
|
{ |
|
|
|
return EMERGENCE_STOP; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// ============ 各模式事件获取函数 ============
|
|
|
|
|
|
|
|
static InputEvent GetHaltModeEvents(void) |
|
|
|
{ |
|
|
|
|
|
|
|
if(P_MK32->CH8_SE==-1000&&P_MK32->CH9_SF==-1000) |
|
|
|
{ |
|
|
|
return EMERGENCE_STOP; |
|
|
|
} |
|
|
|
InputEvent key = CheckAllKeys(); |
|
|
|
return (key != INPUT_NONE) ? key : CalculateRockerEvent(); |
|
|
|
} |
|
|
|
|
|
|
|
static InputEvent GetManualModeEvents(void) |
|
|
|
{ |
|
|
|
if(P_MK32->CH8_SE==-1000&&P_MK32->CH9_SF==-1000) |
|
|
|
{ |
|
|
|
return EMERGENCE_STOP; |
|
|
|
} |
|
|
|
InputEvent key = CheckCommonKeys(); |
|
|
|
return (key != INPUT_NONE) ? key : CalculateRockerEvent(); |
|
|
|
} |
|
|
|
|
|
|
|
static InputEvent GetHorizontalModeEvents(void) |
|
|
|
{ |
|
|
|
if(P_MK32->CH8_SE==-1000&&P_MK32->CH9_SF==-1000) |
|
|
|
{ |
|
|
|
return EMERGENCE_STOP; |
|
|
|
} |
|
|
|
InputEvent key = CheckCommonKeys(); |
|
|
|
return (key != INPUT_NONE) ? key : CalculateRockerEvent(); |
|
|
|
} |
|
|
|
|
|
|
|
static InputEvent GetFlatModeEvents(void) |
|
|
|
{ |
|
|
|
if(P_MK32->CH8_SE==-1000&&P_MK32->CH9_SF==-1000) |
|
|
|
{ |
|
|
|
return EMERGENCE_STOP; |
|
|
|
} |
|
|
|
InputEvent key = CheckCommonKeys(); |
|
|
|
return (key != INPUT_NONE) ? key : CalculateRockerEvent(); |
|
|
|
} |
|
|
|
|
|
|
|
static InputEvent GetVerticalLeftModeEvents(void) |
|
|
|
{ |
|
|
|
if(P_MK32->CH8_SE==-1000&&P_MK32->CH9_SF==-1000) |
|
|
|
{ |
|
|
|
return EMERGENCE_STOP; |
|
|
|
} |
|
|
|
InputEvent key = CheckCommonKeys(); |
|
|
|
return (key != INPUT_NONE) ? key : CalculateRockerEvent(); |
|
|
|
} |
|
|
|
|
|
|
|
static InputEvent GetVerticalRightModeEvents(void) |
|
|
|
{ |
|
|
|
if(P_MK32->CH8_SE==-1000&&P_MK32->CH9_SF==-1000) |
|
|
|
{ |
|
|
|
return EMERGENCE_STOP; |
|
|
|
} |
|
|
|
InputEvent key = CheckCommonKeys(); |
|
|
|
return (key != INPUT_NONE) ? key : CalculateRockerEvent(); |
|
|
|
} |
|
|
|
|
|
|
|
static InputEvent GetRegionalHorizontalTaskEvents(void) |
|
|
|
{ |
|
|
|
if(P_MK32->CH8_SE==-1000&&P_MK32->CH9_SF==-1000) |
|
|
|
{ |
|
|
|
return EMERGENCE_STOP; |
|
|
|
} |
|
|
|
if (P_MK32->CH7_SD == -1000) return INPUT_KEY_AUTO_WORK_UP; |
|
|
|
return CalculateRockerEvent(); |
|
|
|
} |
|
|
|
|
|
|
|
static InputEvent GetRegionalFlatTaskEvents(void) |
|
|
|
{ |
|
|
|
if(P_MK32->CH8_SE==-1000&&P_MK32->CH9_SF==-1000) |
|
|
|
{ |
|
|
|
return EMERGENCE_STOP; |
|
|
|
} |
|
|
|
if (P_MK32->CH7_SD == -1000) return INPUT_KEY_AUTO_WORK_UP; |
|
|
|
return CalculateRockerEvent(); |
|
|
|
} |
|
|
|
@ -222,9 +260,11 @@ void PV_control(void) |
|
|
|
void IV_control(void) |
|
|
|
{ |
|
|
|
IV.Robot_Move_Deri_Speed = 0; |
|
|
|
IV.SystemError = GV.SystemErrorData.Com_Error_Code; |
|
|
|
IV.Robot_Gyro = GV.TL720DParameters.RF_Angle_Roll; |
|
|
|
IV.Is_Online = GV.P_MK32.IsOnline; |
|
|
|
IV.SystemError = GV.SystemErrorData.Com_Error_Code; |
|
|
|
IV.Robot_Move_Deri_Speed = GV.Left_Speed_M_min*10; |
|
|
|
// IV.Left_Motor_Err = GV.LeftMotor.Motor_Fault;
|
|
|
|
// IV.Right_Motor_Err = GV.RightMotor.Motor_Fault;
|
|
|
|
// IV.TimeStamp = SystemTimeMiliCount;
|
|
|
|
@ -243,7 +283,7 @@ void IV_control(void) |
|
|
|
* @param pComp 指向补偿变量的指针(int32_t*) |
|
|
|
* @param pCnt 指向计数器的指针(int*) |
|
|
|
*/ |
|
|
|
static void Update_Single_Compensation(int32_t chVal, int32_t* pComp, int* pCnt) |
|
|
|
static void Update_Single_Compensation(int32_t chVal, float* pComp, int* pCnt) |
|
|
|
{ |
|
|
|
if (chVal > COMP_DEADZONE) { |
|
|
|
(*pCnt)++; |
|
|
|
@ -271,8 +311,10 @@ void Compensation_Update() |
|
|
|
static int leftCnt = 0; /* 左通道计数器 */ |
|
|
|
static int rightCnt = 0; /* 右通道计数器 */ |
|
|
|
|
|
|
|
|
|
|
|
Update_Single_Compensation(P_MK32->CH14_LT, &GV.Left_Compensation, &leftCnt); |
|
|
|
Update_Single_Compensation(P_MK32->CH15_RT, &GV.Right_Compensation, &rightCnt); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|