Merge pull request #3437 from thinkyhead/rc_lcd_encoder_movement
More bits when encoderPosition is cast as signed
This commit is contained in:
		@@ -432,19 +432,19 @@ static void lcd_status_screen() {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #if ENABLED(ULTIPANEL_FEEDMULTIPLY)
 | 
					    #if ENABLED(ULTIPANEL_FEEDMULTIPLY)
 | 
				
			||||||
      int new_frm = feedrate_multiplier + int(encoderPosition);
 | 
					      int new_frm = feedrate_multiplier + (int32_t)encoderPosition;
 | 
				
			||||||
      // Dead zone at 100% feedrate
 | 
					      // Dead zone at 100% feedrate
 | 
				
			||||||
      if ((feedrate_multiplier < 100 && new_frm > 100) || (feedrate_multiplier > 100 && new_frm < 100)) {
 | 
					      if ((feedrate_multiplier < 100 && new_frm > 100) || (feedrate_multiplier > 100 && new_frm < 100)) {
 | 
				
			||||||
        feedrate_multiplier = 100;
 | 
					        feedrate_multiplier = 100;
 | 
				
			||||||
        encoderPosition = 0;
 | 
					        encoderPosition = 0;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      else if (feedrate_multiplier == 100) {
 | 
					      else if (feedrate_multiplier == 100) {
 | 
				
			||||||
        if (int(encoderPosition) > ENCODER_FEEDRATE_DEADZONE) {
 | 
					        if ((int32_t)encoderPosition > ENCODER_FEEDRATE_DEADZONE) {
 | 
				
			||||||
          feedrate_multiplier += int(encoderPosition) - (ENCODER_FEEDRATE_DEADZONE);
 | 
					          feedrate_multiplier += (int32_t)encoderPosition - (ENCODER_FEEDRATE_DEADZONE);
 | 
				
			||||||
          encoderPosition = 0;
 | 
					          encoderPosition = 0;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else if (int(encoderPosition) < -ENCODER_FEEDRATE_DEADZONE) {
 | 
					        else if ((int32_t)encoderPosition < -(ENCODER_FEEDRATE_DEADZONE)) {
 | 
				
			||||||
          feedrate_multiplier += int(encoderPosition) + ENCODER_FEEDRATE_DEADZONE;
 | 
					          feedrate_multiplier += (int32_t)encoderPosition + ENCODER_FEEDRATE_DEADZONE;
 | 
				
			||||||
          encoderPosition = 0;
 | 
					          encoderPosition = 0;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@@ -554,7 +554,7 @@ void lcd_set_home_offsets() {
 | 
				
			|||||||
  static void _lcd_babystep(const int axis, const char* msg) {
 | 
					  static void _lcd_babystep(const int axis, const char* msg) {
 | 
				
			||||||
    ENCODER_DIRECTION_NORMAL();
 | 
					    ENCODER_DIRECTION_NORMAL();
 | 
				
			||||||
    if (encoderPosition) {
 | 
					    if (encoderPosition) {
 | 
				
			||||||
      int distance =  (int)encoderPosition * BABYSTEP_MULTIPLICATOR;
 | 
					      int distance =  (int32_t)encoderPosition * BABYSTEP_MULTIPLICATOR;
 | 
				
			||||||
      encoderPosition = 0;
 | 
					      encoderPosition = 0;
 | 
				
			||||||
      lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW;
 | 
					      lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW;
 | 
				
			||||||
      #if ENABLED(COREXY) || ENABLED(COREXZ)
 | 
					      #if ENABLED(COREXY) || ENABLED(COREXZ)
 | 
				
			||||||
@@ -903,7 +903,7 @@ void lcd_cooldown() {
 | 
				
			|||||||
    // Encoder wheel adjusts the Z position
 | 
					    // Encoder wheel adjusts the Z position
 | 
				
			||||||
    if (encoderPosition && movesplanned() <= 3) {
 | 
					    if (encoderPosition && movesplanned() <= 3) {
 | 
				
			||||||
      refresh_cmd_timeout();
 | 
					      refresh_cmd_timeout();
 | 
				
			||||||
      current_position[Z_AXIS] += float((int)encoderPosition) * (MBL_Z_STEP);
 | 
					      current_position[Z_AXIS] += float((int32_t)encoderPosition) * (MBL_Z_STEP);
 | 
				
			||||||
      if (min_software_endstops) NOLESS(current_position[Z_AXIS], Z_MIN_POS);
 | 
					      if (min_software_endstops) NOLESS(current_position[Z_AXIS], Z_MIN_POS);
 | 
				
			||||||
      if (max_software_endstops) NOMORE(current_position[Z_AXIS], Z_MAX_POS);
 | 
					      if (max_software_endstops) NOMORE(current_position[Z_AXIS], Z_MAX_POS);
 | 
				
			||||||
      encoderPosition = 0;
 | 
					      encoderPosition = 0;
 | 
				
			||||||
@@ -1126,7 +1126,7 @@ static void _lcd_move(const char* name, AxisEnum axis, float min, float max) {
 | 
				
			|||||||
  ENCODER_DIRECTION_NORMAL();
 | 
					  ENCODER_DIRECTION_NORMAL();
 | 
				
			||||||
  if (encoderPosition && movesplanned() <= 3) {
 | 
					  if (encoderPosition && movesplanned() <= 3) {
 | 
				
			||||||
    refresh_cmd_timeout();
 | 
					    refresh_cmd_timeout();
 | 
				
			||||||
    current_position[axis] += float((int)encoderPosition) * move_menu_scale;
 | 
					    current_position[axis] += float((int32_t)encoderPosition) * move_menu_scale;
 | 
				
			||||||
    if (min_software_endstops) NOLESS(current_position[axis], min);
 | 
					    if (min_software_endstops) NOLESS(current_position[axis], min);
 | 
				
			||||||
    if (max_software_endstops) NOMORE(current_position[axis], max);
 | 
					    if (max_software_endstops) NOMORE(current_position[axis], max);
 | 
				
			||||||
    encoderPosition = 0;
 | 
					    encoderPosition = 0;
 | 
				
			||||||
@@ -1157,7 +1157,7 @@ static void lcd_move_e(
 | 
				
			|||||||
    active_extruder = e;
 | 
					    active_extruder = e;
 | 
				
			||||||
  #endif
 | 
					  #endif
 | 
				
			||||||
  if (encoderPosition && movesplanned() <= 3) {
 | 
					  if (encoderPosition && movesplanned() <= 3) {
 | 
				
			||||||
    current_position[E_AXIS] += float((int)encoderPosition) * move_menu_scale;
 | 
					    current_position[E_AXIS] += float((int32_t)encoderPosition) * move_menu_scale;
 | 
				
			||||||
    encoderPosition = 0;
 | 
					    encoderPosition = 0;
 | 
				
			||||||
    line_to_current(E_AXIS);
 | 
					    line_to_current(E_AXIS);
 | 
				
			||||||
    lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW;
 | 
					    lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW;
 | 
				
			||||||
@@ -2345,7 +2345,7 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
 | 
				
			|||||||
      #if ENABLED(RIGIDBOT_PANEL)
 | 
					      #if ENABLED(RIGIDBOT_PANEL)
 | 
				
			||||||
        if (ELAPSED(now, next_button_update_ms)) {
 | 
					        if (ELAPSED(now, next_button_update_ms)) {
 | 
				
			||||||
          if (BUTTON_PRESSED(UP)) {
 | 
					          if (BUTTON_PRESSED(UP)) {
 | 
				
			||||||
            encoderDiff = -1 * (ENCODER_STEPS_PER_MENU_ITEM);
 | 
					            encoderDiff = -(ENCODER_STEPS_PER_MENU_ITEM);
 | 
				
			||||||
            next_button_update_ms = now + 300;
 | 
					            next_button_update_ms = now + 300;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          else if (BUTTON_PRESSED(DWN)) {
 | 
					          else if (BUTTON_PRESSED(DWN)) {
 | 
				
			||||||
@@ -2353,7 +2353,7 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
 | 
				
			|||||||
            next_button_update_ms = now + 300;
 | 
					            next_button_update_ms = now + 300;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          else if (BUTTON_PRESSED(LFT)) {
 | 
					          else if (BUTTON_PRESSED(LFT)) {
 | 
				
			||||||
            encoderDiff = -1 * (ENCODER_PULSES_PER_STEP);
 | 
					            encoderDiff = -(ENCODER_PULSES_PER_STEP);
 | 
				
			||||||
            next_button_update_ms = now + 300;
 | 
					            next_button_update_ms = now + 300;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          else if (BUTTON_PRESSED(RT)) {
 | 
					          else if (BUTTON_PRESSED(RT)) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user