Remove soft limit magic number
authorJoseph Coffland <joseph@cauldrondevelopment.com>
Sun, 15 Jan 2017 05:31:25 +0000 (21:31 -0800)
committerJoseph Coffland <joseph@cauldrondevelopment.com>
Sun, 15 Jan 2017 05:31:25 +0000 (21:31 -0800)
avr/src/axis.c
avr/src/config.h
avr/src/machine.c

index afcfc49a46c0d45001a3465c41309d805888ee8f..6da42da0d50315b9d3e0021558aadb163b2c6ba3 100644 (file)
@@ -174,8 +174,8 @@ AXIS_SET(homed, bool)
 AXIS_GET(homing_mode, homing_mode_t, HOMING_DISABLED)
 AXIS_SET(homing_mode, homing_mode_t)
 AXIS_GET(radius, float, 0)
-AXIS_GET(travel_min, float, DISABLE_SOFT_LIMIT)
-AXIS_GET(travel_max, float, DISABLE_SOFT_LIMIT)
+AXIS_GET(travel_min, float, 0)
+AXIS_GET(travel_max, float, 0)
 AXIS_GET(search_velocity, float, 0)
 AXIS_GET(latch_velocity, float, 0)
 AXIS_GET(zero_backoff, float, 0)
index 68e41e284bef52fae166fe55f893f4013041929d..a7f3717c6d5b5325003e2766dccc449b87524ff3 100644 (file)
@@ -98,8 +98,6 @@ enum {
 #define SWITCHES                10 // number of supported switches
 #define PWMS                     2 // number of supported PWM channels
 
-#define DISABLE_SOFT_LIMIT       -1000000
-
 
 // Motor settings.  See motor.c
 #define MOTOR_MAX_CURRENT        1.0  // 1.0 is full power
@@ -139,12 +137,6 @@ enum {
 #define M4_POWER_MODE            MOTOR_POWER_MODE
 
 
-// Switch settings.  See switch.c
-#define SWITCH_INTLVL            PORT_INT0LVL_MED_gc
-#define SW_LOCKOUT_TICKS         250 // ms
-#define SW_DEGLITCH_TICKS        30  // ms
-
-
 // Machine settings
 //#define STEP_CORRECTION                        // Enable step correction
 #define MAX_STEP_CORRECTION      4             // In steps per segment
@@ -231,6 +223,18 @@ enum {
 #define GCODE_DEFAULT_ARC_DISTANCE_MODE INCREMENTAL_MODE
 
 
+// Arc
+#define ARC_RADIUS_ERROR_MAX   1.0   // max mm diff between start and end radius
+#define ARC_RADIUS_ERROR_MIN   0.005 // min mm where 1% rule applies
+#define ARC_RADIUS_TOLERANCE   0.001 // 0.1% radius variance test
+
+
+// Switch settings.  See switch.c
+#define SWITCH_INTLVL            PORT_INT0LVL_MED_gc
+#define SW_LOCKOUT_TICKS         250 // ms
+#define SW_DEGLITCH_TICKS        30  // ms
+
+
 // Motor ISRs
 #define STALL_ISR_vect PORTA_INT1_vect
 #define FAULT_ISR_vect PORTF_INT1_vect
@@ -307,12 +311,6 @@ enum {
 #define INPUT_BUFFER_LEN       255 // text buffer size (255 max)
 
 
-// Arc
-#define ARC_RADIUS_ERROR_MAX   1.0   // max mm diff between start and end radius
-#define ARC_RADIUS_ERROR_MIN   0.005 // min mm where 1% rule applies
-#define ARC_RADIUS_TOLERANCE   0.001 // 0.1% radius variance test
-
-
 // Planner
 /// Should be at least the number of buffers required to support optimal
 /// planning in the case of very short lines or arc segments.  Suggest no less
index 5deffdcfab78e0da54995e07f6d1d4bca5a46c8c..1fde72da14bdb3a8ef14350484bfc2551e7235b6 100644 (file)
@@ -339,8 +339,7 @@ stat_t mach_test_soft_limits(float target[]) {
     // min == max means no soft limits
     if (fp_EQ(min, max)) continue;
 
-    if ((min > DISABLE_SOFT_LIMIT && target[axis] < min) ||
-        (max > DISABLE_SOFT_LIMIT && target[axis] > max))
+    if (target[axis] < min || max < target[axis])
       return STAT_SOFT_LIMIT_EXCEEDED;
   }