From 67945579dea1c8c2c468458956929cf68d259b6a Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Fri, 5 May 2023 18:56:26 +0200 Subject: [PATCH] G80 minor optimization --- Firmware/Marlin_main.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 5d926ec54..253ba5fd9 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3015,6 +3015,7 @@ static void gcode_G80() if(eeprom_read_byte((uint8_t *)EEPROM_TEMP_CAL_ACTIVE) && calibration_status_pinda() == true) temp_compensation_apply(); //apply PINDA temperature compensation #endif babystep_apply(); // Apply Z height correction aka baby stepping before mesh bed leveing gets activated. + bool eeprom_bed_correction_valid = eeprom_read_byte((unsigned char*)EEPROM_BED_CORRECTION_VALID) == 1; const constexpr uint8_t sides = 4; int8_t correction[sides]; @@ -3036,19 +3037,18 @@ static void gcode_G80() // Value is valid, save it correction[i] = (int8_t)temp; } - } else if (eeprom_bed_correction_valid) { - correction[i] = (int8_t)eeprom_read_byte((uint8_t*)pgm_read_ptr(&eep_addresses[i])); } else { - correction[i] = 0; + correction[i] = eeprom_bed_correction_valid ? (int8_t)eeprom_read_byte((uint8_t*)pgm_read_ptr(&eep_addresses[i])) : 0; } } for (uint8_t row = 0; row < MESH_NUM_Y_POINTS; row++) { for (uint8_t col = 0; col < MESH_NUM_X_POINTS; col++) { - mbl.z_values[row][col] +=0.001f * ( + constexpr float scaler = 0.001f / (MESH_NUM_X_POINTS - 1); + mbl.z_values[row][col] += scaler * ( + correction[0] * (MESH_NUM_X_POINTS - 1 - col) + correction[1] * col + correction[2] * (MESH_NUM_Y_POINTS - 1 - row) - + correction[3] * row) / (float)(MESH_NUM_X_POINTS - 1); + + correction[3] * row); } }