|
|
@@ -190,17 +190,27 @@ static void eRamp_set_X2_target(e_Ramp *ramp, float c) {
|
|
|
|
|
|
float step_ms = CONFIG_eCTRL_STEP_TS;
|
|
|
if (delta > 0) {
|
|
|
- float first_delta = min(delta, 10.0f);
|
|
|
- ramp->first_target = c_now + first_delta;
|
|
|
- ramp->first_step = 0.05f;
|
|
|
- delta -= first_delta;
|
|
|
step_val = (delta)/(ramp->acct/step_ms);
|
|
|
+ if (step_val > 0.1f) {
|
|
|
+ float first_delta = min(delta, 5.0f);
|
|
|
+ ramp->first_target = c_now + first_delta;
|
|
|
+ ramp->first_step = 0.1f;
|
|
|
+ delta -= first_delta;
|
|
|
+ step_val = (delta)/(ramp->acct/step_ms);
|
|
|
+ }else {
|
|
|
+ ramp->first_target = ramp->first_step = 0.0f;
|
|
|
+ }
|
|
|
}else if (delta < 0){
|
|
|
- float first_delta = MAX(delta, -5.0f);
|
|
|
- ramp->first_target = c_now + first_delta;
|
|
|
- ramp->first_step = -0.05f;
|
|
|
- delta -= first_delta;
|
|
|
step_val = (delta)/(ramp->dect/step_ms);
|
|
|
+ if (ABS(step_val) > 0.1f) {
|
|
|
+ float first_delta = MAX(delta, -5.0f);
|
|
|
+ ramp->first_target = c_now + first_delta;
|
|
|
+ ramp->first_step = -0.1f;
|
|
|
+ delta -= first_delta;
|
|
|
+ step_val = (delta)/(ramp->dect/step_ms);
|
|
|
+ }else {
|
|
|
+ ramp->first_target = ramp->first_step = 0.0f;
|
|
|
+ }
|
|
|
}else {
|
|
|
step_val = 0;
|
|
|
ramp->first_step = ramp->first_target = 0;
|