Bladeren bron

更新encoder错误检测

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 2 jaren geleden
bovenliggende
commit
b90ed380f3
1 gewijzigde bestanden met toevoegingen van 5 en 4 verwijderingen
  1. 5 4
      Applications/foc/motor/encoder.c

+ 5 - 4
Applications/foc/motor/encoder.c

@@ -195,18 +195,19 @@ static void encoder_detect_error(s16 cnt) {
 		}
 		}
 #endif
 #endif
 		if (g_encoder.last_delta_cnt == MAX_S16) {
 		if (g_encoder.last_delta_cnt == MAX_S16) {
-			g_encoder.last_delta_cnt = delta_cnt;
 			skip = true;
 			skip = true;
 		}
 		}
 		float ab_thr = CONFIG_ENC_DIANOSTIC_MIN_CNT*1.2f;
 		float ab_thr = CONFIG_ENC_DIANOSTIC_MIN_CNT*1.2f;
-		if (g_encoder.last_delta_cnt <= ab_thr) {
+		if (g_encoder.last_delta_cnt < ab_thr) {
 			if (get_delta_ms(g_encoder.pwm_time_ms) >= 8) {
 			if (get_delta_ms(g_encoder.pwm_time_ms) >= 8) {
 				g_encoder.enc_maybe_err = ENCODER_PWM_ERR;
 				g_encoder.enc_maybe_err = ENCODER_PWM_ERR;
 				enc_pwm_err_ms = get_delta_ms(g_encoder.pwm_time_ms);
 				enc_pwm_err_ms = get_delta_ms(g_encoder.pwm_time_ms);
 				enc_delta_err2 = (s16)((g_encoder.est_vel_counts/g_encoder.cpr) * 60.0f);
 				enc_delta_err2 = (s16)((g_encoder.est_vel_counts/g_encoder.cpr) * 60.0f);
 			}
 			}
-			skip = true;
-			g_encoder.start_dianostic_cnt = 0;
+			if (!_mayerr_cnt) {
+				skip = true;
+				g_encoder.start_dianostic_cnt = 0;
+			}
 		}else if (g_encoder.start_dianostic_cnt < 0xFFFFFF) {
 		}else if (g_encoder.start_dianostic_cnt < 0xFFFFFF) {
 			g_encoder.start_dianostic_cnt ++;
 			g_encoder.start_dianostic_cnt ++;
 		}
 		}