1
0
mirror of https://github.com/MarlinFirmware/Marlin.git synced 2024-11-30 15:26:18 +00:00

CoreXY Babystepping hotfix

This commit is contained in:
Scott Lahteine 2020-02-22 02:52:59 -06:00
parent ac3e27c026
commit 484e1a624c

View File

@ -2526,12 +2526,12 @@ void Stepper::report_positions() {
#elif IS_CORE #elif IS_CORE
#define BABYSTEP_CORE(A, B, INV, DIR) do{ \ #define BABYSTEP_CORE(A, B, INV, DIR, ALT) do{ \
const xy_byte_t old_dir = { _READ_DIR(A), _READ_DIR(B) }; \ const xy_byte_t old_dir = { _READ_DIR(A), _READ_DIR(B) }; \
_ENABLE_AXIS(A); _ENABLE_AXIS(B); \ _ENABLE_AXIS(A); _ENABLE_AXIS(B); \
DIR_WAIT_BEFORE(); \ DIR_WAIT_BEFORE(); \
_APPLY_DIR(A, _INVERT_DIR(A)^DIR^INV); \ _APPLY_DIR(A, _INVERT_DIR(A)^DIR^INV); \
_APPLY_DIR(B, _INVERT_DIR(B)^DIR^INV^(CORESIGN(1)<0)); \ _APPLY_DIR(B, _INVERT_DIR(B)^DIR^INV^ALT); \
DIR_WAIT_AFTER(); \ DIR_WAIT_AFTER(); \
_SAVE_START(); \ _SAVE_START(); \
_APPLY_STEP(A, !_INVERT_STEP_PIN(A), true); \ _APPLY_STEP(A, !_INVERT_STEP_PIN(A), true); \
@ -2560,21 +2560,21 @@ void Stepper::report_positions() {
case X_AXIS: case X_AXIS:
#if CORE_IS_XY #if CORE_IS_XY
BABYSTEP_CORE(X, Y, false, direction); BABYSTEP_CORE(X, Y, 0, direction, 0);
#elif CORE_IS_XZ #elif CORE_IS_XZ
BABYSTEP_CORE(X, Z, false, direction); BABYSTEP_CORE(X, Z, 0, direction, 0);
#else #else
BABYSTEP_AXIS(X, false, direction); BABYSTEP_AXIS(X, 0, direction, 0);
#endif #endif
break; break;
case Y_AXIS: case Y_AXIS:
#if CORE_IS_XY #if CORE_IS_XY
BABYSTEP_CORE(X, Y, false, direction); BABYSTEP_CORE(X, Y, 0, direction, (CORESIGN(1)<0));
#elif CORE_IS_YZ #elif CORE_IS_YZ
BABYSTEP_CORE(Y, Z, false, direction); BABYSTEP_CORE(Y, Z, 0, direction, (CORESIGN(1)<0));
#else #else
BABYSTEP_AXIS(Y, false, direction); BABYSTEP_AXIS(Y, 0, direction, (CORESIGN(1)<0));
#endif #endif
break; break;
@ -2583,11 +2583,11 @@ void Stepper::report_positions() {
case Z_AXIS: { case Z_AXIS: {
#if CORE_IS_XZ #if CORE_IS_XZ
BABYSTEP_CORE(X, Z, BABYSTEP_INVERT_Z, direction); BABYSTEP_CORE(X, Z, BABYSTEP_INVERT_Z, direction, (CORESIGN(1)<0));
#elif CORE_IS_YZ #elif CORE_IS_YZ
BABYSTEP_CORE(Y, Z, BABYSTEP_INVERT_Z, direction); BABYSTEP_CORE(Y, Z, BABYSTEP_INVERT_Z, direction, (CORESIGN(1)<0));
#elif DISABLED(DELTA) #elif DISABLED(DELTA)
BABYSTEP_AXIS(Z, BABYSTEP_INVERT_Z, direction); BABYSTEP_AXIS(Z, BABYSTEP_INVERT_Z, direction, (CORESIGN(1)<0));
#else // DELTA #else // DELTA