|
@@ -15,25 +15,25 @@ void eCtrl_init(u16 accl_time, u16 dec_time){
|
|
|
g_eCtrl.dec_time = dec_time;
|
|
g_eCtrl.dec_time = dec_time;
|
|
|
g_eCtrl.accl_time = accl_time;
|
|
g_eCtrl.accl_time = accl_time;
|
|
|
if (g_eCtrl.accl_time == 0) {
|
|
if (g_eCtrl.accl_time == 0) {
|
|
|
- g_eCtrl.accl_time = CONFIG_DEFAULT_D_TIME;
|
|
|
|
|
|
|
+ g_eCtrl.accl_time = nv_get_foc_params()->n_acc_time;
|
|
|
}
|
|
}
|
|
|
if (g_eCtrl.dec_time == 0) {
|
|
if (g_eCtrl.dec_time == 0) {
|
|
|
- g_eCtrl.dec_time = CONFIG_DEFAULT_D_TIME;
|
|
|
|
|
|
|
+ g_eCtrl.dec_time = nv_get_foc_params()->n_dec_time;
|
|
|
}
|
|
}
|
|
|
- g_eCtrl.ebrk_time = CONFIG_EBRK_RAMP_TIME;
|
|
|
|
|
|
|
+ g_eCtrl.ebrk_time = nv_get_foc_params()->n_ebrk_time;
|
|
|
|
|
|
|
|
- g_eCtrl.ebrk_shadow = g_eCtrl.ebrk_time;
|
|
|
|
|
- g_eCtrl.accl_shadow = g_eCtrl.accl_time;
|
|
|
|
|
- g_eCtrl.dec_shadow = g_eCtrl.dec_time;
|
|
|
|
|
|
|
+ g_eCtrl.ebrk_time_shadow = g_eCtrl.ebrk_time;
|
|
|
|
|
+ g_eCtrl.accl_time_shadow = g_eCtrl.accl_time;
|
|
|
|
|
+ g_eCtrl.dec_time_shadow = g_eCtrl.dec_time;
|
|
|
g_eCtrl.hw_brake = false;
|
|
g_eCtrl.hw_brake = false;
|
|
|
g_eCtrl.is_ebrake_shadow = g_eCtrl.is_ebrake = false;
|
|
g_eCtrl.is_ebrake_shadow = g_eCtrl.is_ebrake = false;
|
|
|
- eRamp_init(&g_eCtrl.current, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
|
|
|
|
|
+ eRamp_init(&g_eCtrl.current, g_eCtrl.ebrk_time, g_eCtrl.ebrk_time);
|
|
|
eRamp_init(&g_eCtrl.speed, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
eRamp_init(&g_eCtrl.speed, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
|
eRamp_init(&g_eCtrl.torque, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
eRamp_init(&g_eCtrl.torque, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void eCtrl_set_ebrk_time(u16 ebrk_time) {
|
|
void eCtrl_set_ebrk_time(u16 ebrk_time) {
|
|
|
- g_eCtrl.ebrk_shadow = ebrk_time;
|
|
|
|
|
|
|
+ g_eCtrl.ebrk_time_shadow = ebrk_time;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -63,7 +63,7 @@ bool eCtrl_enable_eBrake(bool enable) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void _eCtrl_clear_ramp(void) {
|
|
void _eCtrl_clear_ramp(void) {
|
|
|
- eRamp_init(&g_eCtrl.current, CONFIG_EBRK_RAMP_TIME, CONFIG_EBRK_RAMP_TIME);
|
|
|
|
|
|
|
+ eRamp_init(&g_eCtrl.current, nv_get_foc_params()->n_ebrk_time, nv_get_foc_params()->n_ebrk_time);
|
|
|
eRamp_init(&g_eCtrl.speed, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
eRamp_init(&g_eCtrl.speed, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
|
eRamp_init(&g_eCtrl.torque, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
eRamp_init(&g_eCtrl.torque, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
|
g_eCtrl.current_shadow = 0.0f;
|
|
g_eCtrl.current_shadow = 0.0f;
|
|
@@ -87,14 +87,17 @@ bool eCtrl_is_eBrk_enabled(void) {
|
|
|
|
|
|
|
|
void eCtrl_Running(void) {
|
|
void eCtrl_Running(void) {
|
|
|
bool etime_changed = false;
|
|
bool etime_changed = false;
|
|
|
- if (g_eCtrl.accl_shadow != g_eCtrl.accl_time || g_eCtrl.dec_shadow != g_eCtrl.dec_time) {
|
|
|
|
|
- g_eCtrl.dec_time = g_eCtrl.dec_shadow;
|
|
|
|
|
- g_eCtrl.accl_time = g_eCtrl.accl_shadow;
|
|
|
|
|
- eRamp_set_time(&g_eCtrl.current, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
|
|
|
|
|
+ if (g_eCtrl.accl_time_shadow != g_eCtrl.accl_time || g_eCtrl.dec_time_shadow != g_eCtrl.dec_time) {
|
|
|
|
|
+ g_eCtrl.dec_time = g_eCtrl.dec_time_shadow;
|
|
|
|
|
+ g_eCtrl.accl_time = g_eCtrl.accl_time_shadow;
|
|
|
eRamp_set_time(&g_eCtrl.speed, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
eRamp_set_time(&g_eCtrl.speed, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
|
eRamp_set_time(&g_eCtrl.torque, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
eRamp_set_time(&g_eCtrl.torque, g_eCtrl.accl_time, g_eCtrl.dec_time);
|
|
|
etime_changed = true;
|
|
etime_changed = true;
|
|
|
}
|
|
}
|
|
|
|
|
+ if (g_eCtrl.ebrk_time_shadow != g_eCtrl.ebrk_time) {
|
|
|
|
|
+ g_eCtrl.ebrk_time = g_eCtrl.ebrk_time_shadow;
|
|
|
|
|
+ eRamp_set_time(&g_eCtrl.current, g_eCtrl.ebrk_time, g_eCtrl.ebrk_time);
|
|
|
|
|
+ }
|
|
|
if (g_eCtrl.current_shadow != g_eCtrl.current.target || etime_changed) {
|
|
if (g_eCtrl.current_shadow != g_eCtrl.current.target || etime_changed) {
|
|
|
_eCtrl_set_TgtCurrent(g_eCtrl.current_shadow);
|
|
_eCtrl_set_TgtCurrent(g_eCtrl.current_shadow);
|
|
|
}
|
|
}
|