Avoid repeated Enable/Disable on an axis if already in desired state
parent
8a1df52d79
commit
7f39f07679
|
|
@ -15,14 +15,16 @@ void Motion::InitAxis(Axis axis) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Motion::SetEnabled(Axis axis, bool enabled) {
|
void Motion::SetEnabled(Axis axis, bool enabled) {
|
||||||
axisData[axis].drv.SetEnabled(axisParams[axis].params, enabled);
|
if (enabled != axisData[axis].enabled) {
|
||||||
axisData[axis].enabled = enabled;
|
axisData[axis].drv.SetEnabled(axisParams[axis].params, enabled);
|
||||||
|
axisData[axis].enabled = enabled;
|
||||||
|
|
||||||
if (!axisData[axis].enabled) {
|
if (!axisData[axis].enabled) {
|
||||||
// axis is powered off, clear internal StallGuard counters
|
// axis is powered off, clear internal StallGuard counters
|
||||||
axisData[axis].stall_trig = false;
|
axisData[axis].stall_trig = false;
|
||||||
axisData[axis].stall_cnt = 0;
|
axisData[axis].stall_cnt = 0;
|
||||||
}
|
}
|
||||||
|
} // else skip unnecessary Enable/Disable operations on an axis if already in the desired state
|
||||||
}
|
}
|
||||||
|
|
||||||
void Motion::SetMode(Axis axis, MotorMode mode) {
|
void Motion::SetMode(Axis axis, MotorMode mode) {
|
||||||
|
|
|
||||||
|
|
@ -191,6 +191,7 @@ private:
|
||||||
axisParams[axis].jerk,
|
axisParams[axis].jerk,
|
||||||
axisParams[axis].accel,
|
axisParams[axis].accel,
|
||||||
},
|
},
|
||||||
|
.enabled = false
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue