|
|
|
|
273
|
#endif
|
273
|
#endif
|
274
|
|
274
|
|
275
|
#if CORE_IS_XY || CORE_IS_XZ
|
275
|
#if CORE_IS_XY || CORE_IS_XZ
|
276
|
- // Head direction in -X axis for CoreXY and CoreXZ bots.
|
|
|
277
|
- // If DeltaA == -DeltaB, the movement is only in only one axis
|
|
|
278
|
#if ENABLED(COREYX) || ENABLED(COREZX)
|
276
|
#if ENABLED(COREYX) || ENABLED(COREZX)
|
279
|
#define CORE_X_CMP !=
|
277
|
#define CORE_X_CMP !=
|
280
|
#define CORE_X_NOT !
|
278
|
#define CORE_X_NOT !
|
|
|
|
|
282
|
#define CORE_X_CMP ==
|
280
|
#define CORE_X_CMP ==
|
283
|
#define CORE_X_NOT
|
281
|
#define CORE_X_NOT
|
284
|
#endif
|
282
|
#endif
|
|
|
283
|
+ // Head direction in -X axis for CoreXY and CoreXZ bots.
|
|
|
284
|
+ // If steps differ, both axes are moving.
|
|
|
285
|
+ // If DeltaA == -DeltaB, the movement is only in the 2nd axis (Y or Z, handled below)
|
|
|
286
|
+ // If DeltaA == DeltaB, the movement is only in the 1st axis (X)
|
285
|
if (stepper.current_block->steps[CORE_AXIS_1] != stepper.current_block->steps[CORE_AXIS_2] || stepper.motor_direction(CORE_AXIS_1) CORE_X_CMP stepper.motor_direction(CORE_AXIS_2)) {
|
287
|
if (stepper.current_block->steps[CORE_AXIS_1] != stepper.current_block->steps[CORE_AXIS_2] || stepper.motor_direction(CORE_AXIS_1) CORE_X_CMP stepper.motor_direction(CORE_AXIS_2)) {
|
286
|
if (CORE_X_NOT stepper.motor_direction(X_HEAD))
|
288
|
if (CORE_X_NOT stepper.motor_direction(X_HEAD))
|
287
|
#else
|
289
|
#else
|
|
|
|
|
324
|
|
326
|
|
325
|
#if CORE_IS_XY || CORE_IS_YZ
|
327
|
#if CORE_IS_XY || CORE_IS_YZ
|
326
|
// Head direction in -Y axis for CoreXY / CoreYZ bots.
|
328
|
// Head direction in -Y axis for CoreXY / CoreYZ bots.
|
327
|
- // If DeltaA == DeltaB, the movement is in only one axis
|
|
|
|
|
329
|
+ // If steps differ, both axes are moving
|
|
|
330
|
+ // If DeltaA == DeltaB, the movement is only in the 1st axis (X or Y)
|
|
|
331
|
+ // If DeltaA == -DeltaB, the movement is only in the 2nd axis (Y or Z)
|
328
|
if (stepper.current_block->steps[CORE_AXIS_1] != stepper.current_block->steps[CORE_AXIS_2] || stepper.motor_direction(CORE_AXIS_1) CORE_YZ_CMP stepper.motor_direction(CORE_AXIS_2)) {
|
332
|
if (stepper.current_block->steps[CORE_AXIS_1] != stepper.current_block->steps[CORE_AXIS_2] || stepper.motor_direction(CORE_AXIS_1) CORE_YZ_CMP stepper.motor_direction(CORE_AXIS_2)) {
|
329
|
if (CORE_YZ_NOT stepper.motor_direction(Y_HEAD))
|
333
|
if (CORE_YZ_NOT stepper.motor_direction(Y_HEAD))
|
330
|
#else
|
334
|
#else
|
|
|
|
|
346
|
|
350
|
|
347
|
#if CORE_IS_XZ || CORE_IS_YZ
|
351
|
#if CORE_IS_XZ || CORE_IS_YZ
|
348
|
// Head direction in -Z axis for CoreXZ or CoreYZ bots.
|
352
|
// Head direction in -Z axis for CoreXZ or CoreYZ bots.
|
349
|
- // If DeltaA == DeltaB, the movement is in only one axis
|
|
|
|
|
353
|
+ // If steps differ, both axes are moving
|
|
|
354
|
+ // If DeltaA == DeltaB, the movement is only in the 1st axis (X or Y, already handled above)
|
|
|
355
|
+ // If DeltaA == -DeltaB, the movement is only in the 2nd axis (Z)
|
350
|
if (stepper.current_block->steps[CORE_AXIS_1] != stepper.current_block->steps[CORE_AXIS_2] || stepper.motor_direction(CORE_AXIS_1) CORE_YZ_CMP stepper.motor_direction(CORE_AXIS_2)) {
|
356
|
if (stepper.current_block->steps[CORE_AXIS_1] != stepper.current_block->steps[CORE_AXIS_2] || stepper.motor_direction(CORE_AXIS_1) CORE_YZ_CMP stepper.motor_direction(CORE_AXIS_2)) {
|
351
|
if (CORE_YZ_NOT stepper.motor_direction(Z_HEAD))
|
357
|
if (CORE_YZ_NOT stepper.motor_direction(Z_HEAD))
|
352
|
#else
|
358
|
#else
|