Bläddra i källkod

give some times to get the pwm brk error

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 3 år sedan
förälder
incheckning
5a21802c38
1 ändrade filer med 8 tillägg och 1 borttagningar
  1. 8 1
      Applications/foc/motor/motor.c

+ 8 - 1
Applications/foc/motor/motor.c

@@ -154,6 +154,7 @@ bool mc_start(u8 mode) {
 		PMSM_FOC_SetErrCode(FOC_Throttle_Err);
 		return false;
 	}
+
 	pwm_up_enable(false);
 
 	_mc_internal_init(mode, true);
@@ -164,9 +165,14 @@ bool mc_start(u8 mode) {
 	PMSM_FOC_Start(mode);
 	PMSM_FOC_RT_LimInit();
 	pwm_turn_on_low_side();
-	delay_ms(100);
+	delay_ms(10);
 	phase_current_offset_calibrate();
 	pwm_start();
+	delay_us(10); //wait for ebrake error
+	if (PMSM_FOC_GetCriticalError() != 0) {
+		mc_stop();
+		return false;
+	}
 	adc_start_convert();
 	phase_current_calibrate_wait();
 	if (phase_curr_offset_check()) {
@@ -557,6 +563,7 @@ void MC_Brake_IRQHandler(void) {
 
 static void _pwm_brake_prot_timer_handler(shark_timer_t *t){
 	pwm_brake_enable(true);
+	sys_debug("MC protect error\n");
 }
 
 void MC_Protect_IRQHandler(void){