|
|
@@ -214,7 +214,7 @@ bool mc_unsafe_critical_error(void) {
|
|
|
err = err & (~(FOC_Cri_Err_Mask(FOC_CRIT_Encoder_Err)));
|
|
|
sys_debug("err=0x%x\n", err);
|
|
|
#endif
|
|
|
- if (motor.b_calibrate || motor.b_force_run) {
|
|
|
+ if (motor.b_ignor_throttle) {
|
|
|
err = err & (~(FOC_Cri_Err_Mask(FOC_CRIT_THRO_Err)));
|
|
|
}
|
|
|
return (err != 0);
|
|
|
@@ -490,14 +490,11 @@ bool mc_throttle_epm_move(EPM_Dir_t dir) {
|
|
|
return mc_start_epm_move(dir, false);
|
|
|
}
|
|
|
|
|
|
-void mc_set_throttle_r(u8 r) {
|
|
|
+void mc_set_throttle_r(bool use, u8 r) {
|
|
|
motor.u_throttle_ration = r;
|
|
|
-
|
|
|
- if (r > 0) {
|
|
|
- motor.b_ignor_throttle = true;
|
|
|
+ motor.b_ignor_throttle = use;
|
|
|
+ if (motor.b_ignor_throttle) {
|
|
|
mc_clr_critical_error(FOC_CRIT_THRO_Err);
|
|
|
- }else {
|
|
|
- motor.b_ignor_throttle = false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -549,12 +546,14 @@ void mc_force_run_open(s16 vd, s16 vq) {
|
|
|
PMSM_FOC_Stop();
|
|
|
pwm_up_enable(true);
|
|
|
motor.b_force_run = false;
|
|
|
+ motor.b_ignor_throttle = false;
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
if (vd == 0 && vq == 0) {
|
|
|
return;
|
|
|
}
|
|
|
+ motor.b_ignor_throttle = true;
|
|
|
MC_Check_MosVbusThrottle();
|
|
|
if (mc_unsafe_critical_error()) {
|
|
|
PMSM_FOC_SetErrCode(FOC_Have_CritiCal_Err);
|
|
|
@@ -663,10 +662,12 @@ bool mc_encoder_zero_calibrate(s16 vd) {
|
|
|
PMSM_FOC_Stop();
|
|
|
_mc_internal_init(CTRL_MODE_OPEN, false);
|
|
|
motor.b_calibrate = false;
|
|
|
+ motor.b_ignor_throttle = false;
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
encoder_clear_cnt_offset();
|
|
|
+ motor.b_ignor_throttle = true;
|
|
|
MC_Check_MosVbusThrottle();
|
|
|
if (mc_unsafe_critical_error()) {
|
|
|
PMSM_FOC_SetErrCode(FOC_Have_CritiCal_Err);
|