|
|
@@ -222,7 +222,6 @@ static void mc_gear_vmode_changed(void) {
|
|
|
mot_contrl_set_vel_limit(&motor.controller, (float)min(gears->max_speed, motor.u_set.rpm_lim));
|
|
|
mot_contrl_set_dccurr_limit(&motor.controller, (float)min(gears->max_idc, motor.u_set.idc_lim));
|
|
|
mot_contrl_set_torque_limit(&motor.controller, (float)gears->max_torque);
|
|
|
- sys_debug("change %d, %d, %d\n", gears->max_idc, gears->max_speed, gears->max_torque);
|
|
|
}
|
|
|
|
|
|
void mc_init(void) {
|
|
|
@@ -595,7 +594,7 @@ bool mc_set_foc_mode(u8 mode) {
|
|
|
bool ret = false;
|
|
|
if (mot_contrl_request_mode(&motor.controller, mode)) {
|
|
|
motor.mode = mode;
|
|
|
- if (mode == CTRL_MODE_OPEN || mode == CTRL_MODE_CURRENT) {
|
|
|
+ if ((mode == CTRL_MODE_OPEN || mode == CTRL_MODE_CURRENT) && !mot_contrl_is_start(&motor.controller)) {
|
|
|
mot_contrl_start(&motor.controller, motor.mode);
|
|
|
pwm_enable_channel();
|
|
|
}
|
|
|
@@ -1521,7 +1520,7 @@ static void mc_process_throttle_torque(float vol) {
|
|
|
}
|
|
|
}
|
|
|
/*FOC 的部分处理,比如速度环,状态机,转把采集等*/
|
|
|
-measure_time_t g_meas_MCTask;
|
|
|
+measure_time_t g_meas_MCTask = {.exec_max_time = 100, .intval_max_time = 1000, .intval_low_err = 0, .intval_hi_err = 0, .first = true,};
|
|
|
#define mc_TaskStart time_measure_start(&g_meas_MCTask)
|
|
|
#define mc_TaskEnd time_measure_end(&g_meas_MCTask)
|
|
|
void Sched_MC_mTask(void) {
|
|
|
@@ -1539,7 +1538,6 @@ void Sched_MC_mTask(void) {
|
|
|
mc_process_curise();
|
|
|
#endif
|
|
|
u8 runMode = mot_contrl_mode(&motor.controller);
|
|
|
-
|
|
|
/*保护功能*/
|
|
|
u8 limted = mot_contrl_protect(&motor.controller);
|
|
|
/* 母线电流,实际采集的相电流矢量大小的计算 */
|