|
@@ -5,6 +5,7 @@
|
|
|
uint16_t GasSensor_OffSet = 0;
|
|
|
GasSensorCruiceCheckParam_Struct_t GasSensorCruiceCheckParam = {0, 0, RESET, 0, FALSE};
|
|
|
TrueOrFalse_Flag_Struct_t IsGasSensorConnectedFlag = FALSE;
|
|
|
+GasModeStartCheckParam_Struct_t GasModeStartCheckParam = {RESET, FALSE, 0};
|
|
|
|
|
|
#define ZeroOffSetData 100
|
|
|
|
|
@@ -132,3 +133,42 @@ void GasSensorCruiceCheck(uint16_t GasSensorData, uint16_t BikeSpeed, TrueOrFals
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+//转把模式启动判断
|
|
|
+void GasModeStartCheck(TrueOrFalse_Flag_Struct_t IsBreakFlag, uint16_t GasSensorData, MC_GearSt_Struct_t GearSt, GasModeStartCheckParam_Struct_t* p_GasModeStartCheckParam)
|
|
|
+{
|
|
|
+ //OFF档位,禁止转把模式
|
|
|
+ if(GearSt == MC_GearSt_OFF)
|
|
|
+ {
|
|
|
+ p_GasModeStartCheckParam->StartFlag = RESET;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ //捏刹车,松开后允许转把模式
|
|
|
+ if(p_GasModeStartCheckParam->StartFlag == RESET)
|
|
|
+ {
|
|
|
+ if(IsBreakFlag != p_GasModeStartCheckParam->IsBreakFlag)
|
|
|
+ {
|
|
|
+ if(IsBreakFlag == FALSE)
|
|
|
+ {
|
|
|
+ p_GasModeStartCheckParam->StartFlag = SET;
|
|
|
+ p_GasModeStartCheckParam->DelayTimeCnt = HAL_GetTick();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ p_GasModeStartCheckParam->IsBreakFlag = IsBreakFlag;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ //超时判断,10s内未捏转把启动,禁止转把模式
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if(GasSensorData > 30)
|
|
|
+ {
|
|
|
+ p_GasModeStartCheckParam->DelayTimeCnt = HAL_GetTick();
|
|
|
+ }
|
|
|
+ if((HAL_GetTick() - p_GasModeStartCheckParam->DelayTimeCnt) > 10000)
|
|
|
+ {
|
|
|
+ p_GasModeStartCheckParam->StartFlag = RESET;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|