|
@@ -157,45 +157,62 @@ MC_AssistRunMode_Struct_t MC_JudgeAsistRunMode_Process(MC_GearSt_Struct_t GearSt
|
|
|
{
|
|
|
MC_AssistRunMode_Struct_t MC_AssistRunMode_Result = MC_AssistRunMode_INVALID;
|
|
|
|
|
|
- if(MC_ErrorCode.Code == 0) // 无故障
|
|
|
+ if(MC_ErrorCode.Code == 0) //无故障
|
|
|
{
|
|
|
- if((GearSt != MC_GearSt_OFF) && (StopFlag == FALSE))
|
|
|
+ if(StopFlag == FALSE) //无刹车
|
|
|
{
|
|
|
- //进入推行模式
|
|
|
- if(GearSt == MC_GearSt_WALK)
|
|
|
+ do
|
|
|
{
|
|
|
- MC_AssistRunMode_Result = MC_AssistRunMode_WALK;
|
|
|
- }
|
|
|
- //进入踏频模式
|
|
|
- else if((GearSt & 0xF0) == 0x10)
|
|
|
- {
|
|
|
- #if CADENCE_MODE_ENABLE
|
|
|
- MC_AssistRunMode_Result = MC_AssistRunMode_CADENCE;
|
|
|
- #endif
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- #if 1
|
|
|
- static MC_AssistRunMode_Struct_t MC_AssistRunMode_Result_Old = MC_AssistRunMode_INVALID;
|
|
|
- //进入力矩模式
|
|
|
- MC_AssistRunMode_Result = MC_AssistRunMode_TORQUE;
|
|
|
- //判断是否进入转把推行模式
|
|
|
- if((Cadence < 15) && (AdcSenorData.TorqueSensor < 100) && (AdcSenorData.GasSensor > 50))
|
|
|
+ if((GearSt == MC_GearSt_OFF) && (AdcSenorData.GasSensor > 200)) //OFF档,转把有信号进入推行模式
|
|
|
{
|
|
|
- if(((MC_AssistRunMode_Result_Old == MC_AssistRunMode_TORQUE) && (MC_HallSensorData.IsStopFlag == TRUE)) //上一次处于力矩模式,需电机停止才能进入转把推行
|
|
|
- ||(MC_AssistRunMode_Result_Old == MC_AssistRunMode_WALK)) //上一次处于转把推行模式,继续维持
|
|
|
+ MC_AssistRunMode_Result = MC_AssistRunMode_WALK;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if(GearSt != MC_GearSt_OFF) //非OFF档,转把无信号,判断是否进入推行或力矩模式
|
|
|
+ {
|
|
|
+ //进入推行模式
|
|
|
+ if(GearSt == MC_GearSt_WALK)
|
|
|
+ {
|
|
|
+ MC_AssistRunMode_Result = MC_AssistRunMode_WALK;
|
|
|
+ }
|
|
|
+ //进入踏频模式
|
|
|
+ else if((GearSt & 0xF0) == 0x10)
|
|
|
+ {
|
|
|
+ #if CADENCE_MODE_ENABLE
|
|
|
+ MC_AssistRunMode_Result = MC_AssistRunMode_CADENCE;
|
|
|
+ #endif
|
|
|
+ }
|
|
|
+ else
|
|
|
{
|
|
|
- MC_AssistRunMode_Result = MC_AssistRunMode_WALK;
|
|
|
+ #if 1
|
|
|
+ static MC_AssistRunMode_Struct_t MC_AssistRunMode_Result_Old = MC_AssistRunMode_INVALID;
|
|
|
+ //进入力矩模式
|
|
|
+ MC_AssistRunMode_Result = MC_AssistRunMode_TORQUE;
|
|
|
+ //判断是否进入转把推行模式
|
|
|
+ if((Cadence < 15) && (AdcSenorData.TorqueSensor < 100) && (AdcSenorData.GasSensor > 200))
|
|
|
+ {
|
|
|
+ if(((MC_AssistRunMode_Result_Old == MC_AssistRunMode_TORQUE) && (MC_HallSensorData.IsStopFlag == TRUE)) //上一次处于力矩模式,需电机停止才能进入转把推行
|
|
|
+ ||(MC_AssistRunMode_Result_Old == MC_AssistRunMode_WALK)) //上一次处于转把推行模式,继续维持
|
|
|
+ {
|
|
|
+ MC_AssistRunMode_Result = MC_AssistRunMode_WALK;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ MC_AssistRunMode_Result_Old = MC_AssistRunMode_Result;
|
|
|
+ #else
|
|
|
+ //进入力矩模式
|
|
|
+ MC_AssistRunMode_Result = MC_AssistRunMode_TORQUE;
|
|
|
+ #endif
|
|
|
}
|
|
|
+ break;
|
|
|
}
|
|
|
- MC_AssistRunMode_Result_Old = MC_AssistRunMode_Result;
|
|
|
- #else
|
|
|
- //进入力矩模式
|
|
|
- MC_AssistRunMode_Result = MC_AssistRunMode_TORQUE;
|
|
|
- #endif
|
|
|
- }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MC_AssistRunMode_Result = MC_AssistRunMode_INVALID;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }while(0);
|
|
|
}
|
|
|
- else
|
|
|
+ else //刹车触发
|
|
|
{
|
|
|
MC_AssistRunMode_Result = MC_AssistRunMode_INVALID;
|
|
|
}
|