From 71488c39ecb9c2d2fcd9a56a5e9e89ca118bdfe9 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 10 Aug 2012 17:31:32 +0100 Subject: [PATCH] Refresh of m206-always-use-homing-homeing --- Marlin/Marlin.pde | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Marlin/Marlin.pde b/Marlin/Marlin.pde index 5b00f9c..a772fa6 100644 --- a/Marlin/Marlin.pde +++ b/Marlin/Marlin.pde @@ -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) \ -- 2.30.2