return (strchr_pointer != NULL); //Return True if a character was found
}
-static const PROGMEM float base_min_pos[3] = { X_MIN_POS, Y_MIN_POS, Z_MIN_POS };
-static const PROGMEM float base_max_pos[3] = { X_MAX_POS, Y_MAX_POS, Z_MAX_POS };
-static const PROGMEM float base_home_pos[3] = { X_HOME_POS, Y_HOME_POS, Z_HOME_POS };
+#define XYZ_CONFIG(type,array,axis) (pgm_read_##type##_near(&array##_P[(axis)]))
+#define XYZ_CONSTS_FROM_CONFIG(type, array, CONFIG) \
+static const PROGMEM type array##_P[3] = { X_##CONFIG, Y_##CONFIG, Z_##CONFIG };
+
+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] = 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];
+ 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];
}
#define HOMEAXIS(LETTER) \