|
|
@@ -187,6 +187,14 @@ static void mc_gear_vmode_changed(void) {
|
|
|
PMSM_FOC_TorqueLimit(gears[motor.n_gear].u_maxTorque);
|
|
|
}
|
|
|
|
|
|
+static s16 mc_get_gear_idc_limit(void) {
|
|
|
+ if (motor.b_is96Mode) {
|
|
|
+ return nv_get_gear_configs()->gears_96[motor.n_gear].u_maxIdc;
|
|
|
+ }else {
|
|
|
+ return nv_get_gear_configs()->gears_48[motor.n_gear].u_maxIdc;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
void mc_init(void) {
|
|
|
fan_pwm_init();
|
|
|
adc_init();
|
|
|
@@ -384,6 +392,12 @@ bool mc_set_cruise_speed(bool rpm_abs, float target_rpm) {
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+void mc_set_idc_limit(s16 limit) {
|
|
|
+ s16 g_limit = mc_get_gear_idc_limit();
|
|
|
+ limit = min(g_limit, limit);
|
|
|
+ PMSM_FOC_DCCurrLimit(limit);
|
|
|
+}
|
|
|
+
|
|
|
bool mc_set_foc_mode(u8 mode) {
|
|
|
if (mode == motor.mode) {
|
|
|
return true;
|