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);
+#define XYZ_CONSTS_FROM_CONFIG(type, array, CONFIG) \
+static const PROGMEM type array##_P[3] = \
+ { X_##CONFIG, Y_##CONFIG, Z_##CONFIG }; \
+static inline type array(int axis) \
+ { return pgm_read_any(&array##_P[axis]); }
+
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(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];
+ current_position[axis] = base_home_pos(axis) + add_homeing[axis];
+ min_pos[axis] = base_min_pos(axis) + add_homeing[axis];
+ max_pos[axis] = base_max_pos(axis) + add_homeing[axis];
}
#define HOMEAXIS(LETTER) \