Просмотр исходного кода

通过挡位配置决定加速时间

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 3 лет назад
Родитель
Сommit
4ce8f9eaf0

+ 4 - 0
Applications/foc/core/e_ctrl.c

@@ -135,6 +135,10 @@ void eCtrl_Reset(void) {
 	g_eCtrl.is_ebrake = false;
 }
 
+void eCtrl_set_accl_time(u16 time) {
+	g_eCtrl.accl_time_shadow = time;
+}
+
 static bool _eCtrl_isHwBrk_shutPower(void) {
 	return (g_eCtrl.hw_brake && nv_get_foc_params()->n_brkShutPower);
 }

+ 1 - 0
Applications/foc/core/e_ctrl.h

@@ -235,6 +235,7 @@ void eCtrl_Running(void);
 void eCtrl_Reset(void);
 void eCtrl_reset_Torque(float init_trq);
 void eCtrl_reset_Current(float init_curr);
+void eCtrl_set_accl_time(u16 time);
 
 #endif /* EBRAKE_CTRL_H__ */
 

+ 3 - 2
Applications/foc/motor/motor.c

@@ -180,6 +180,7 @@ static void mc_gear_vmode_changed(void) {
 	PMSM_FOC_SpeedLimit(gears->n_max_speed);
 	PMSM_FOC_DCCurrLimit(gears->n_max_idc);
 	PMSM_FOC_TorqueLimit(gears->n_max_trq);
+	eCtrl_set_accl_time((u16)gears->n_accl_time);
 }
 
 static s16 mc_get_gear_idc_limit(void) {
@@ -200,7 +201,7 @@ void mc_init(void) {
 	thro_torque_init();
 	mc_detect_vbus_mode();
 	PMSM_FOC_CoreInit();
-	eCtrl_init(CONFIG_ACC_TIME, nv_get_foc_params()->n_dec_time);
+	eCtrl_init(mc_get_gear_config()->n_accl_time, nv_get_foc_params()->n_dec_time);
 	mc_gpio_init();
 	MC_Check_MosVbusThrottle();
 	sched_timer_enable(CONFIG_SPD_CTRL_US);
@@ -286,7 +287,7 @@ bool mc_start(u8 mode) {
 #else
 	thro_torque_reset();
 #endif
-	eCtrl_init(CONFIG_ACC_TIME, nv_get_foc_params()->n_dec_time);
+	eCtrl_init(mc_get_gear_config()->n_accl_time, nv_get_foc_params()->n_dec_time);
 	motor_encoder_start(true);
 	PMSM_FOC_Start(mode);
 	PMSM_FOC_RT_LimInit();