Add CorePQ support for BABYSTEPPING (#10155)
This commit is contained in:
parent
72281c4ff9
commit
eaefc1e410
|
@ -1304,16 +1304,16 @@ void Stepper::report_positions() {
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BABYSTEP_AXIS(AXIS, INVERT) { \
|
#define BABYSTEP_AXIS(AXIS, INVERT, DIR) { \
|
||||||
const uint8_t old_dir = _READ_DIR(AXIS); \
|
const uint8_t old_dir = _READ_DIR(AXIS); \
|
||||||
_ENABLE(AXIS); \
|
_ENABLE(AXIS); \
|
||||||
_SAVE_START; \
|
_SAVE_START; \
|
||||||
_APPLY_DIR(AXIS, _INVERT_DIR(AXIS)^direction^INVERT); \
|
_APPLY_DIR(AXIS, _INVERT_DIR(AXIS)^DIR^INVERT); \
|
||||||
_PULSE_WAIT; \
|
_PULSE_WAIT; \
|
||||||
_APPLY_STEP(AXIS)(!_INVERT_STEP_PIN(AXIS), true); \
|
_APPLY_STEP(AXIS)(!_INVERT_STEP_PIN(AXIS), true); \
|
||||||
_PULSE_WAIT; \
|
_PULSE_WAIT; \
|
||||||
_APPLY_STEP(AXIS)(_INVERT_STEP_PIN(AXIS), true); \
|
_APPLY_STEP(AXIS)(_INVERT_STEP_PIN(AXIS), true); \
|
||||||
_APPLY_DIR(AXIS, old_dir); \
|
_APPLY_DIR(AXIS, old_dir); \
|
||||||
}
|
}
|
||||||
|
|
||||||
// MUST ONLY BE CALLED BY AN ISR,
|
// MUST ONLY BE CALLED BY AN ISR,
|
||||||
|
@ -1326,20 +1326,43 @@ void Stepper::report_positions() {
|
||||||
#if ENABLED(BABYSTEP_XY)
|
#if ENABLED(BABYSTEP_XY)
|
||||||
|
|
||||||
case X_AXIS:
|
case X_AXIS:
|
||||||
BABYSTEP_AXIS(X, false);
|
#if CORE_IS_XY
|
||||||
|
BABYSTEP_AXIS(X, false, direction);
|
||||||
|
BABYSTEP_AXIS(Y, false, direction);
|
||||||
|
#elif CORE_IS_XZ
|
||||||
|
BABYSTEP_AXIS(X, false, direction);
|
||||||
|
BABYSTEP_AXIS(Z, false, direction);
|
||||||
|
#else
|
||||||
|
BABYSTEP_AXIS(X, false, direction);
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Y_AXIS:
|
case Y_AXIS:
|
||||||
BABYSTEP_AXIS(Y, false);
|
#if CORE_IS_XY
|
||||||
|
BABYSTEP_AXIS(X, false, direction);
|
||||||
|
BABYSTEP_AXIS(Y, false, direction^(CORESIGN(1)<0));
|
||||||
|
#elif CORE_IS_YZ
|
||||||
|
BABYSTEP_AXIS(Y, false, direction);
|
||||||
|
BABYSTEP_AXIS(Z, false, direction^(CORESIGN(1)<0));
|
||||||
|
#else
|
||||||
|
BABYSTEP_AXIS(Y, false, direction);
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case Z_AXIS: {
|
case Z_AXIS: {
|
||||||
|
|
||||||
#if DISABLED(DELTA)
|
#if CORE_IS_XZ
|
||||||
|
BABYSTEP_AXIS(X, BABYSTEP_INVERT_Z, direction);
|
||||||
|
BABYSTEP_AXIS(Z, BABYSTEP_INVERT_Z, direction^(CORESIGN(1)<0));
|
||||||
|
|
||||||
BABYSTEP_AXIS(Z, BABYSTEP_INVERT_Z);
|
#elif CORE_IS_YZ
|
||||||
|
BABYSTEP_AXIS(Y, BABYSTEP_INVERT_Z, direction);
|
||||||
|
BABYSTEP_AXIS(Z, BABYSTEP_INVERT_Z, direction^(CORESIGN(1)<0));
|
||||||
|
|
||||||
|
#elif DISABLED(DELTA)
|
||||||
|
BABYSTEP_AXIS(Z, BABYSTEP_INVERT_Z, direction);
|
||||||
|
|
||||||
#else // DELTA
|
#else // DELTA
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue