|
|
@@ -72,6 +72,7 @@ static void _mc_internal_init(u8 mode, bool start) {
|
|
|
motor.b_epm_cmd_move = false;
|
|
|
motor.epm_dir = EPM_Dir_None;
|
|
|
motor.n_autohold_time = 0;
|
|
|
+ motor.b_auto_hold = 0;
|
|
|
}
|
|
|
void mc_init(void) {
|
|
|
adc_init();
|
|
|
@@ -320,7 +321,7 @@ void mc_encoder_off_calibrate(s16 vd) {
|
|
|
PMSM_FOC_SetOpenVdq(vd, 0);
|
|
|
delay_ms(2000);
|
|
|
motor_encoder_set_direction(POSITIVE);
|
|
|
- for (int i = 0; i < 5000; i++) {
|
|
|
+ for (int i = 0; i < 200; i++) {
|
|
|
for (float angle = 0; angle < 360; angle++) {
|
|
|
PMSM_FOC_Set_Angle(angle);
|
|
|
delay_ms(1);
|
|
|
@@ -335,7 +336,7 @@ void mc_encoder_off_calibrate(s16 vd) {
|
|
|
}
|
|
|
motor_encoder_set_direction(NEGATIVE);
|
|
|
delay_ms(100);
|
|
|
- for (int i = 0; i < 5000; i++) {
|
|
|
+ for (int i = 0; i < 200; i++) {
|
|
|
for (float angle = 360; angle > 0; angle--) {
|
|
|
PMSM_FOC_Set_Angle(angle);
|
|
|
delay_ms(1);
|
|
|
@@ -356,6 +357,7 @@ void mc_encoder_off_calibrate(s16 vd) {
|
|
|
pwm_stop();
|
|
|
PMSM_FOC_Stop();
|
|
|
pwm_up_enable(true);
|
|
|
+ motor_encoder_data_upload();
|
|
|
motor.b_calibrate = false;
|
|
|
}
|
|
|
|