diff --git a/site_ansto/motor_dmc2280.c b/site_ansto/motor_dmc2280.c index 31a66f13..7494d4a3 100644 --- a/site_ansto/motor_dmc2280.c +++ b/site_ansto/motor_dmc2280.c @@ -712,15 +712,19 @@ static int DMC2280RunCommon(pDMC2280Driv self,float fValue){ snprintf(BGx, CMDLEN, "BG%c", axis); target = fValue - self->home; - if (self->backlash_offset > FLT_EPSILON && target < self->lastPosition) { - target += self->backlash_offset; - if (target > self->fUpper) - target = self->fUpper; + if (self->backlash_offset > FLT_EPSILON) { + if (target > self->lastPosition) { + target += self->backlash_offset; + if (target > self->fUpper) + target = self->fUpper; + } } - if (self->backlash_offset < -FLT_EPSILON && target > self->lastPosition) { - target += self->backlash_offset; - if (target < self->fLower) - target = self->fLower; + else if (self->backlash_offset < -FLT_EPSILON) { + if (target < self->lastPosition) { + target += self->backlash_offset; + if (target < self->fLower) + target = self->fLower; + } } if (1 == self->abs_endcoder) {