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) \