Browse Source

修改encoder 调试错误的打印和内部变量

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 2 năm trước cách đây
mục cha
commit
f6a80370a3

+ 3 - 3
Applications/app/app.c

@@ -149,9 +149,9 @@ static u32 _app_report_task(void *p) {
 
 	if (++loop % 10 == 0) {
 		//sys_debug("rst 0x%x\n", get_mcu_reset_source());
-		//sys_debug("Slow: %d - %d\n", g_meas_MCTask.intval_time, g_meas_MCTask.exec_time);
-		//sys_debug("Fast: %d - %d, err: %d-%d-%d\n", g_meas_foc.intval_time, g_meas_foc.exec_time, g_meas_foc.intval_hi_err, g_meas_foc.intval_low_err, g_meas_foc.exec_max_error_time);
-		//sys_debug("FOC time err %d %d\n", g_meas_foc.intval_time_h_error, g_meas_foc.intval_time_l_error);
+		sys_debug("Slow: %d - %d\n", g_meas_MCTask.intval_time, g_meas_MCTask.exec_time);
+		sys_debug("Fast: %d - %d, err: %d-%d-%d\n", g_meas_foc.intval_time, g_meas_foc.exec_time, g_meas_foc.intval_hi_err, g_meas_foc.intval_low_err, g_meas_foc.exec_max_error_time);
+		sys_debug("FOC time err %d %d\n", g_meas_foc.intval_time_h_error, g_meas_foc.intval_time_l_error);
 		//sys_debug("acc vol %d, bid %d\n", get_acc_vol(), gpio_board_id());
 		//sys_debug("throttle %f\n", get_throttle_float());
 		//sys_debug("ADC Vref %f, %f\n", get_adc_vref(), adc_5vref_compesion());

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

@@ -156,7 +156,7 @@ static __INLINE float _eccentricity_compensation(int cnt) {
 u32 enc_pwm_err_ms = 0;
 s16 enc_delta_err1 = 0;
 s16 enc_delta_err2 = 0;
-static s16 enc_r = 0;
+static float enc_r = 0;
 static s16 enc_cnt = 0;
 static s16 enc_last_cnt = 0;
 static s16 enc_test1 = 0;
@@ -243,9 +243,9 @@ static void encoder_detect_error(s16 cnt) {
 					g_encoder.enc_maybe_err = ENCODER_AB_ERR;
 					enc_delta_err1 = g_encoder.last_delta_cnt;
 					enc_delta_err2 = (s16)((g_encoder.est_vel_counts/g_encoder.cpr) * 60.0f);
-					enc_r = r*100;
-					enc_cnt = cnt;
-					enc_last_cnt = g_encoder.last_cnt;
+					enc_r = r;
+					enc_cnt = delta_cnt;
+					enc_last_cnt = _mayerr_cnt;
 				}
 			}else {
 				_mayerr_cnt = 0;
@@ -503,6 +503,7 @@ void encoder_log(void) {
 	sys_debug("pwm count %d, I count %d,%d,%d\n", g_encoder.pwm_count, abi_I_delta, g_encoder.z_index_cnt, abi_z_count);
 	sys_debug("pwm freq %f, err %d, %f, %f\n", enc_get_pwm_freq(), pwm_duty_err, pwm_err_min, pwm_err_max);
 	if (g_encoder.enc_maybe_err) {
-		sys_debug("E:%d,%d,%d,%d,%d,%d, %d\n", enc_test1, enc_test2, enc_test3, enc_r, enc_cnt, enc_last_cnt, enc_test4);
+		sys_debug("E:%d,%d,%d,%d,%d,%d\n", enc_test1, enc_test2, enc_test3, enc_cnt, enc_last_cnt, enc_test4);
+		sys_debug("E:%d, %d, %f, %d\n", enc_delta_err1, enc_delta_err2, enc_r, g_encoder.enc_maybe_err);
 	}
 }

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

@@ -732,7 +732,7 @@ bool mc_ind_motor_start(bool start) {
 		motor.b_ind_start = start;
 		PMSM_FOC_SetOpenVdq(0, 0);
 		cpu_exit_critical(mask);
-		delay_ms(500);
+		delay_us(500);
 		wdog_reload();
 		adc_stop_convert();
 		pwm_stop();