diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index b465d8535a..208ac33033 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -84,7 +84,11 @@ const char echomagic[] PROGMEM ="echo:"; #define SERIAL_ECHOLN(x) SERIAL_PROTOCOLLN(x) #define SERIAL_ECHOLNPGM(x) SERIAL_PROTOCOLLNPGM(x) -#define SERIAL_ECHOPAIR(name,value) {SERIAL_ECHOPGM(name);SERIAL_ECHO(value);} +#define SERIAL_ECHOPAIR(name,value) (serial_echopair_P(PSTR(name),(value))) + +void serial_echopair_P(const char *s_P, float v); +void serial_echopair_P(const char *s_P, double v); +void serial_echopair_P(const char *s_P, unsigned long v); //things to write to serial from Programmemory. saves 400 to 2k of RAM. diff --git a/Marlin/Marlin.pde b/Marlin/Marlin.pde index d11b51c7c9..22e3e64ed8 100644 --- a/Marlin/Marlin.pde +++ b/Marlin/Marlin.pde @@ -203,6 +203,13 @@ bool Stopped=false; void get_arc_coordinates(); +void serial_echopair_P(const char *s_P, float v) + { serialprintPGM(s_P); SERIAL_ECHO(v); } +void serial_echopair_P(const char *s_P, double v) + { serialprintPGM(s_P); SERIAL_ECHO(v); } +void serial_echopair_P(const char *s_P, unsigned long v) + { serialprintPGM(s_P); SERIAL_ECHO(v); } + extern "C"{ extern unsigned int __bss_end; extern unsigned int __heap_start;