Browse Source

Merge pull request #6362 from tcm0116/babystepping

Only queue babysteps if axis is in a known position
Scott Lahteine 7 years ago
parent
commit
bf2548be4a
1 changed files with 25 additions and 23 deletions
  1. 25
    23
      Marlin/temperature.h

+ 25
- 23
Marlin/temperature.h View File

@@ -431,31 +431,33 @@ class Temperature {
431 431
     #if ENABLED(BABYSTEPPING)
432 432
 
433 433
       static void babystep_axis(const AxisEnum axis, const int distance) {
434
-        #if IS_CORE
435
-          #if ENABLED(BABYSTEP_XY)
436
-            switch (axis) {
437
-              case CORE_AXIS_1: // X on CoreXY and CoreXZ, Y on CoreYZ
438
-                babystepsTodo[CORE_AXIS_1] += distance * 2;
439
-                babystepsTodo[CORE_AXIS_2] += distance * 2;
440
-                break;
441
-              case CORE_AXIS_2: // Y on CoreXY, Z on CoreXZ and CoreYZ
442
-                babystepsTodo[CORE_AXIS_1] += CORESIGN(distance * 2);
443
-                babystepsTodo[CORE_AXIS_2] -= CORESIGN(distance * 2);
444
-                break;
445
-              case NORMAL_AXIS: // Z on CoreXY, Y on CoreXZ, X on CoreYZ
446
-                babystepsTodo[NORMAL_AXIS] += distance;
447
-                break;
448
-            }
449
-          #elif CORE_IS_XZ || CORE_IS_YZ
450
-            // Only Z stepping needs to be handled here
451
-            babystepsTodo[CORE_AXIS_1] += CORESIGN(distance * 2);
452
-            babystepsTodo[CORE_AXIS_2] -= CORESIGN(distance * 2);
434
+        if (axis_known_position[axis]) {
435
+          #if IS_CORE
436
+            #if ENABLED(BABYSTEP_XY)
437
+              switch (axis) {
438
+                case CORE_AXIS_1: // X on CoreXY and CoreXZ, Y on CoreYZ
439
+                  babystepsTodo[CORE_AXIS_1] += distance * 2;
440
+                  babystepsTodo[CORE_AXIS_2] += distance * 2;
441
+                  break;
442
+                case CORE_AXIS_2: // Y on CoreXY, Z on CoreXZ and CoreYZ
443
+                  babystepsTodo[CORE_AXIS_1] += CORESIGN(distance * 2);
444
+                  babystepsTodo[CORE_AXIS_2] -= CORESIGN(distance * 2);
445
+                  break;
446
+                case NORMAL_AXIS: // Z on CoreXY, Y on CoreXZ, X on CoreYZ
447
+                  babystepsTodo[NORMAL_AXIS] += distance;
448
+                  break;
449
+              }
450
+            #elif CORE_IS_XZ || CORE_IS_YZ
451
+              // Only Z stepping needs to be handled here
452
+              babystepsTodo[CORE_AXIS_1] += CORESIGN(distance * 2);
453
+              babystepsTodo[CORE_AXIS_2] -= CORESIGN(distance * 2);
454
+            #else
455
+              babystepsTodo[Z_AXIS] += distance;
456
+            #endif
453 457
           #else
454
-            babystepsTodo[Z_AXIS] += distance;
458
+            babystepsTodo[axis] += distance;
455 459
           #endif
456
-        #else
457
-          babystepsTodo[axis] += distance;
458
-        #endif
460
+        }
459 461
       }
460 462
 
461 463
     #endif // BABYSTEPPING

Loading…
Cancel
Save