|
|
@ -269,19 +269,19 @@ class Stepper {
|
|
|
|
inline static void set_position(const AxisEnum a, const int32_t &v) {
|
|
|
|
inline static void set_position(const AxisEnum a, const int32_t &v) {
|
|
|
|
planner.synchronize();
|
|
|
|
planner.synchronize();
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __AVR__
|
|
|
|
#ifdef __AVR__
|
|
|
|
// Protect the access to the position. Only required for AVR, as
|
|
|
|
// Protect the access to the position. Only required for AVR, as
|
|
|
|
// any 32bit CPU offers atomic access to 32bit variables
|
|
|
|
// any 32bit CPU offers atomic access to 32bit variables
|
|
|
|
const bool was_enabled = STEPPER_ISR_ENABLED();
|
|
|
|
const bool was_enabled = STEPPER_ISR_ENABLED();
|
|
|
|
if (was_enabled) DISABLE_STEPPER_DRIVER_INTERRUPT();
|
|
|
|
if (was_enabled) DISABLE_STEPPER_DRIVER_INTERRUPT();
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
count_position[a] = v;
|
|
|
|
count_position[a] = v;
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __AVR__
|
|
|
|
#ifdef __AVR__
|
|
|
|
// Reenable Stepper ISR
|
|
|
|
// Reenable Stepper ISR
|
|
|
|
if (was_enabled) ENABLE_STEPPER_DRIVER_INTERRUPT();
|
|
|
|
if (was_enabled) ENABLE_STEPPER_DRIVER_INTERRUPT();
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
private:
|
|
|
|