From 4f04bf7fe8b6e1f7a7de9f839ccacb75a26f1496 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 18 Apr 2016 20:39:15 -0700 Subject: [PATCH] Show steps done in the babystep display --- Marlin/ultralcd.cpp | 21 ++++++++++++++------- Marlin/ultralcd.h | 2 +- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index c1a55380c3..a8296c0db6 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -550,10 +550,12 @@ void lcd_set_home_offsets() { #if ENABLED(BABYSTEPPING) + int babysteps_done = 0; + static void _lcd_babystep(const int axis, const char* msg) { ENCODER_DIRECTION_NORMAL(); if (encoderPosition) { - int distance = (int32_t)encoderPosition * BABYSTEP_MULTIPLICATOR; + int distance = (int32_t)encoderPosition * BABYSTEP_MULTIPLICATOR; encoderPosition = 0; lcdDrawUpdate = LCDVIEW_REDRAW_NOW; #if ENABLED(COREXY) || ENABLED(COREXZ) @@ -580,16 +582,21 @@ void lcd_set_home_offsets() { #else babystepsTodo[axis] += distance; #endif + + babysteps_done += distance; } - if (lcdDrawUpdate) lcd_implementation_drawedit(msg, NULL); + if (lcdDrawUpdate) lcd_implementation_drawedit(msg, itostr3sign(babysteps_done)); if (LCD_CLICKED) lcd_goto_previous_menu(true); } #if ENABLED(BABYSTEP_XY) - static void lcd_babystep_x() { _lcd_babystep(X_AXIS, PSTR(MSG_BABYSTEPPING_X)); } - static void lcd_babystep_y() { _lcd_babystep(Y_AXIS, PSTR(MSG_BABYSTEPPING_Y)); } + static void _lcd_babystep_x() { _lcd_babystep(X_AXIS, PSTR(MSG_BABYSTEPPING_X)); } + static void _lcd_babystep_y() { _lcd_babystep(Y_AXIS, PSTR(MSG_BABYSTEPPING_Y)); } + static void lcd_babystep_x() { babysteps_done = 0; lcd_goto_menu(_lcd_babystep_x); } + static void lcd_babystep_y() { babysteps_done = 0; lcd_goto_menu(_lcd_babystep_y); } #endif - static void lcd_babystep_z() { _lcd_babystep(Z_AXIS, PSTR(MSG_BABYSTEPPING_Z)); } + static void _lcd_babystep_z() { _lcd_babystep(Z_AXIS, PSTR(MSG_BABYSTEPPING_Z)); } + static void lcd_babystep_z() { babysteps_done = 0; lcd_goto_menu(_lcd_babystep_z); } #endif //BABYSTEPPING @@ -2573,8 +2580,8 @@ char* ftostr32sp(const float& x) { return conv; } -// Convert signed int to lj string with +012.0 / -012.0 format -char* itostr31(const int& x) { +// Convert signed int to lj string with +012 / -012 format +char* itostr3sign(const int& x) { int xx; if (x >= 0) { conv[0] = '+'; diff --git a/Marlin/ultralcd.h b/Marlin/ultralcd.h index 61abf9cede..9665c2ce9c 100644 --- a/Marlin/ultralcd.h +++ b/Marlin/ultralcd.h @@ -162,7 +162,7 @@ #endif //ULTRA_LCD char* itostr2(const uint8_t& x); -char* itostr31(const int& x); +char* itostr3sign(const int& x); char* itostr3(const int& x); char* itostr3left(const int& x); char* itostr4(const int& x);