From afd4f1d5bc2fbfbcd14e64866da158f405744512 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Sun, 9 Apr 2023 15:17:01 +0200 Subject: [PATCH] Iterate over axis bits --- Firmware/xyzcal.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Firmware/xyzcal.cpp b/Firmware/xyzcal.cpp index 3794eb4c4..2ba5d68c2 100644 --- a/Firmware/xyzcal.cpp +++ b/Firmware/xyzcal.cpp @@ -416,11 +416,19 @@ void print_hysteresis(int16_t min_z, int16_t max_z, int16_t step){ } void update_position_1_step(const uint8_t axis, const uint8_t dir) { - count_position[axis] += dir & _BV(axis) ? -1L : 1L; + for (uint8_t i = X_AXIS, mask = X_AXIS_MASK; i <= Z_AXIS; i++, mask <<= 1) { + if (axis & mask) { + count_position[i] += dir & mask ? -1L : 1L; + } + } } void __attribute__((noinline)) set_axes_dir(const uint8_t axis, const uint8_t dir) { - sm4_set_dir(axis, dir & _BV(axis)); + for (uint8_t i = X_AXIS, mask = X_AXIS_MASK; i <= Z_AXIS; i++, mask <<= 1) { + if (axis & mask) { + sm4_set_dir(i, dir & mask); + } + } } /// Accelerate up to max.speed (defined by @min_delay_us)