From 47a183e96e5bc6ecb2e049520a4fa805f52ed090 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 11 Jun 2019 19:49:56 +0200 Subject: [PATCH] Use loop to enquecommand_P() in first layer calibration. Save 126B of FLASH memory. --- Firmware/first_lay_cal.cpp | 45 ++++++++++++++++++++++++++++++++++++++ Firmware/first_lay_cal.h | 1 + Firmware/ultralcd.cpp | 17 +------------- 3 files changed, 47 insertions(+), 16 deletions(-) diff --git a/Firmware/first_lay_cal.cpp b/Firmware/first_lay_cal.cpp index 0958faaaf..446b82015 100644 --- a/Firmware/first_lay_cal.cpp +++ b/Firmware/first_lay_cal.cpp @@ -122,3 +122,48 @@ void lay1cal_before_meander() enquecommand_P(static_cast(pgm_read_ptr(&cmd_pre_meander[i]))); } } + +static const char cmd_meander_0[] PROGMEM = "G1 X50 Y155"; +static const char cmd_meander_1[] PROGMEM = "G1 Z0.150 F7200.000"; +static const char cmd_meander_2[] PROGMEM = "G1 F1080"; +static const char cmd_meander_3[] PROGMEM = "G1 X75 Y155 E2.5"; +static const char cmd_meander_4[] PROGMEM = "G1 X100 Y155 E2"; +static const char cmd_meander_5[] PROGMEM = "G1 X200 Y155 E2.62773"; +static const char cmd_meander_6[] PROGMEM = "G1 X200 Y135 E0.66174"; +static const char cmd_meander_7[] PROGMEM = "G1 X50 Y135 E3.62773"; +static const char cmd_meander_8[] PROGMEM = "G1 X50 Y115 E0.49386"; +static const char cmd_meander_9[] PROGMEM = "G1 X200 Y115 E3.62773"; +static const char cmd_meander_10[] PROGMEM = "G1 X200 Y95 E0.49386"; +static const char cmd_meander_11[] PROGMEM = "G1 X50 Y95 E3.62773"; +static const char cmd_meander_12[] PROGMEM = "G1 X50 Y75 E0.49386"; +static const char cmd_meander_13[] PROGMEM = "G1 X200 Y75 E3.62773"; +static const char cmd_meander_14[] PROGMEM = "G1 X200 Y55 E0.49386"; +static const char cmd_meander_15[] PROGMEM = "G1 X50 Y55 E3.62773"; + +static const char * const cmd_meander[] PROGMEM = +{ + cmd_meander_0, + cmd_meander_1, + cmd_meander_2, + cmd_meander_3, + cmd_meander_4, + cmd_meander_5, + cmd_meander_6, + cmd_meander_7, + cmd_meander_8, + cmd_meander_9, + cmd_meander_10, + cmd_meander_11, + cmd_meander_12, + cmd_meander_13, + cmd_meander_14, + cmd_meander_15, +}; + +void lay1cal_meander() +{ + for (uint8_t i = 0; i < (sizeof(cmd_meander)/sizeof(cmd_meander[0])); ++i) + { + enquecommand_P(static_cast(pgm_read_ptr(&cmd_meander[i]))); + } +} diff --git a/Firmware/first_lay_cal.h b/Firmware/first_lay_cal.h index b99d691b5..7ebed5e89 100644 --- a/Firmware/first_lay_cal.h +++ b/Firmware/first_lay_cal.h @@ -12,6 +12,7 @@ void lay1cal_preheat(); void lay1cal_intro_line(char *cmd_buffer, uint8_t filament); void lay1cal_before_meander(); +void lay1cal_meander(); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 23ab61cd0..1cac19a9f 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1413,22 +1413,7 @@ void lcd_commands() lcd_commands_step = 7; break; case 7: - enquecommand_P(PSTR("G1 X50 Y155")); - enquecommand_P(PSTR("G1 Z0.150 F7200.000")); - enquecommand_P(PSTR("G1 F1080")); - enquecommand_P(PSTR("G1 X75 Y155 E2.5")); - enquecommand_P(PSTR("G1 X100 Y155 E2")); - enquecommand_P(PSTR("G1 X200 Y155 E2.62773")); - enquecommand_P(PSTR("G1 X200 Y135 E0.66174")); - enquecommand_P(PSTR("G1 X50 Y135 E3.62773")); - enquecommand_P(PSTR("G1 X50 Y115 E0.49386")); - enquecommand_P(PSTR("G1 X200 Y115 E3.62773")); - enquecommand_P(PSTR("G1 X200 Y95 E0.49386")); - enquecommand_P(PSTR("G1 X50 Y95 E3.62773")); - enquecommand_P(PSTR("G1 X50 Y75 E0.49386")); - enquecommand_P(PSTR("G1 X200 Y75 E3.62773")); - enquecommand_P(PSTR("G1 X200 Y55 E0.49386")); - enquecommand_P(PSTR("G1 X50 Y55 E3.62773")); + lay1cal_meander(); strcpy(cmd1, "G1 X50 Y35 E"); strcat(cmd1, ftostr43(extr));