chiark / gitweb /
Refresh of m206-always-use-homing-homeing
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 10 Aug 2012 16:31:32 +0000 (17:31 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 10 Aug 2012 16:31:32 +0000 (17:31 +0100)
Marlin/Marlin.pde

index 5b00f9cd2fc96d4da1177877ba6b305a9bae010f..a772fa6d7e0ffe066c8d72c8d32170463cff3ac4 100644 (file)
@@ -545,18 +545,24 @@ bool code_seen(char code)
   return (strchr_pointer != NULL);  //Return True if a character was found
 }
 
-#define XYZ_CONFIG(type,array,axis) (pgm_read_##type##_near(&array##_P[(axis)]))
+#define DEFINE_PGM_READ_ANY(type, reader)              \
+    static inline float pgm_read_any(const type *p)    \
+       { return pgm_read_##reader##_near(p); }
+
+#define XYZ_CONFIG(array,axis) (pgm_read_any(&array##_P[(axis)]))
 #define XYZ_CONSTS_FROM_CONFIG(type, array, CONFIG) \
 static const PROGMEM type array##_P[3] = { X_##CONFIG, Y_##CONFIG, Z_##CONFIG };
 
+DEFINE_PGM_READ_ANY(float,       float);
+
 XYZ_CONSTS_FROM_CONFIG(float, base_min_pos,    MIN_POS);
 XYZ_CONSTS_FROM_CONFIG(float, base_max_pos,    MAX_POS);
 XYZ_CONSTS_FROM_CONFIG(float, base_home_pos,   HOME_POS);
 
 static void axis_is_at_home(int axis) {
-  current_position[axis] = XYZ_CONFIG(float, base_home_pos,axis) + add_homeing[axis];
-  min_pos[axis] = XYZ_CONFIG(float, base_min_pos, axis) + add_homeing[axis];
-  max_pos[axis] = XYZ_CONFIG(float, base_max_pos, axis) + add_homeing[axis];
+  current_position[axis] = XYZ_CONFIG(base_home_pos, axis) + add_homeing[axis];
+  min_pos[axis] =          XYZ_CONFIG(base_min_pos, axis) + add_homeing[axis];
+  max_pos[axis] =          XYZ_CONFIG(base_max_pos, axis) + add_homeing[axis];
 }
 
 #define HOMEAXIS(LETTER) \