LCD: Added Deadzone at 100% Feedrate
This adds a deadzone at 100% Feedrate when changing it at the status screen/main menu. Prevents from unwanted feedrate-changing when navigating back to the main menu and makes it easier to return to 100%.
This commit is contained in:
		| @@ -77,6 +77,7 @@ static void menu_action_setting_edit_callback_float52(const char* pstr, float* p | ||||
| static void menu_action_setting_edit_callback_long5(const char* pstr, unsigned long* ptr, unsigned long minValue, unsigned long maxValue, menuFunc_t callbackFunc); | ||||
|  | ||||
| #define ENCODER_STEPS_PER_MENU_ITEM 5 | ||||
| #define ENCODER_FEEDRATE_DEADZONE 10 | ||||
|  | ||||
| /* Helper macros for menus */ | ||||
| #define START_MENU() do { \ | ||||
| @@ -158,10 +159,34 @@ static void lcd_status_screen() | ||||
|     if (LCD_CLICKED) | ||||
|     { | ||||
|         currentMenu = lcd_main_menu; | ||||
| 		encoderPosition = 0; | ||||
|         lcd_quick_feedback(); | ||||
|     } | ||||
|     feedmultiply += int(encoderPosition); | ||||
|     encoderPosition = 0; | ||||
|  | ||||
| 	// Dead zone at 100% feedrate | ||||
| 	if (feedmultiply < 100 && (feedmultiply + int(encoderPosition)) > 100 || | ||||
| 			feedmultiply > 100 && (feedmultiply + int(encoderPosition)) < 100) | ||||
| 	{ | ||||
| 		encoderPosition = 0; | ||||
| 		feedmultiply = 100; | ||||
| 	} | ||||
| 	 | ||||
| 	if (feedmultiply == 100 && int(encoderPosition) > ENCODER_FEEDRATE_DEADZONE) | ||||
| 	{ | ||||
| 		feedmultiply += int(encoderPosition) - ENCODER_FEEDRATE_DEADZONE; | ||||
| 		encoderPosition = 0; | ||||
| 	} | ||||
| 	else if (feedmultiply == 100 && int(encoderPosition) < -ENCODER_FEEDRATE_DEADZONE) | ||||
| 	{ | ||||
| 		feedmultiply += int(encoderPosition) + ENCODER_FEEDRATE_DEADZONE; | ||||
| 		encoderPosition = 0;	 | ||||
| 	} | ||||
| 	else if (feedmultiply != 100) | ||||
| 	{ | ||||
|     	feedmultiply += int(encoderPosition); | ||||
| 		encoderPosition = 0; | ||||
|     } | ||||
|  | ||||
|     if (feedmultiply < 10) | ||||
|         feedmultiply = 10; | ||||
|     if (feedmultiply > 999) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user