From 13477c65c6678fddd18a4f1977a22153812d9487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gu=C3=B0ni=20M=C3=A1r=20Gilbert?= Date: Fri, 2 Jul 2021 20:02:13 +0000 Subject: [PATCH] Remove two functions EEPROM_read_B() and EEPROM_save_B() This resolves #3218 --- Firmware/Marlin_main.cpp | 55 ++++++++++++++++++++++++++-------------- Firmware/ultralcd.cpp | 32 +++++++---------------- Firmware/ultralcd.h | 2 -- 3 files changed, 45 insertions(+), 44 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index d1bc83a1..a7365025 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1502,7 +1502,9 @@ void setup() #ifdef SNMM if (eeprom_read_dword((uint32_t*)EEPROM_BOWDEN_LENGTH) == 0x0ffffffff) { //bowden length used for SNMM int _z = BOWDEN_LENGTH; - for(int i = 0; i<4; i++) EEPROM_save_B(EEPROM_BOWDEN_LENGTH + i * 2, &_z); + for(uint8_t i = 0; i < 4; i++) { + eeprom_update_word((uint16_t*)EEPROM_BOWDEN_LENGTH + i, _z); + } } #endif @@ -1547,7 +1549,9 @@ void setup() //eeprom_write_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0); eeprom_write_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 1); int16_t z_shift = 0; - for (uint8_t i = 0; i < 5; i++) EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + i * 2, &z_shift); + for (uint8_t i = 0; i < 5; i++) { + eeprom_update_word((uint16_t*)EEPROM_PROBE_TEMP_SHIFT + i, z_shift); + } eeprom_write_byte((uint8_t*)EEPROM_TEMP_CAL_ACTIVE, 0); } if (eeprom_read_byte((uint8_t*)EEPROM_UVLO) == 255) { @@ -1571,8 +1575,10 @@ void setup() #ifdef PAT9125 fsensor_setup_interrupt(); #endif //PAT9125 - for (int i = 0; i<4; i++) EEPROM_read_B(EEPROM_BOWDEN_LENGTH + i * 2, &bowden_length[i]); - + for (uint8_t i = 0; i < 4; i++) { + bowden_length[i] = eeprom_read_word((uint16_t*) EEPROM_BOWDEN_LENGTH + i); + } + #ifndef DEBUG_DISABLE_STARTMSGS KEEPALIVE_STATE(PAUSED_FOR_USER); @@ -5434,7 +5440,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) { float temp = (40 + i * 5); printf_P(_N("\nStep: %d/6 (skipped)\nPINDA temperature: %d Z shift (mm):0\n"), i + 2, (40 + i*5)); - if (i >= 0) EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + i * 2, &z_shift); + if (i >= 0) { + eeprom_update_word((uint16_t*)EEPROM_PROBE_TEMP_SHIFT + i, z_shift); + } if (start_temp <= temp) break; } @@ -5473,7 +5481,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) printf_P(_N("\nPINDA temperature: %.1f Z shift (mm): %.3f"), current_temperature_pinda, current_position[Z_AXIS] - zero_z); - EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + i * 2, &z_shift); + eeprom_update_word((uint16_t*)EEPROM_PROBE_TEMP_SHIFT + i, z_shift); } lcd_temp_cal_show_result(true); homing_flag = false; @@ -5558,7 +5566,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) printf_P(_N("\nTemperature: %d Z shift (mm): %.3f\n"), t_c, current_position[Z_AXIS] - zero_z); - EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + i*2, &z_shift); + eeprom_update_word((uint16_t*)EEPROM_PROBE_TEMP_SHIFT + i, z_shift); } @@ -5680,7 +5688,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) }else{ // Save it to the eeprom babystepLoadZ = babystepz; - EEPROM_save_B(EEPROM_BABYSTEP_Z0+(BabyPosition*2),&babystepLoadZ); + eeprom_update_word((uint16_t*)EEPROM_BABYSTEP_Z0 + BabyPosition, babystepLoadZ); // adjust the Z babystepsTodoZadd(babystepLoadZ); } @@ -8363,7 +8371,9 @@ Sigma_Exit: SERIAL_PROTOCOLLN("index, temp, ustep, um"); for (uint8_t i = 0; i < 6; i++) { - if(i>0) EEPROM_read_B(EEPROM_PROBE_TEMP_SHIFT + (i-1) * 2, &usteps); + if(i > 0) { + usteps = eeprom_read_word((uint16_t*) EEPROM_PROBE_TEMP_SHIFT + (i - 1)); + } float mm = ((float)usteps) / cs.axis_steps_per_unit[Z_AXIS]; i == 0 ? SERIAL_PROTOCOLPGM("n/a") : SERIAL_PROTOCOL(i - 1); SERIAL_PROTOCOLPGM(", "); @@ -8378,21 +8388,23 @@ Sigma_Exit: else if (code_seen('!')) { // ! - Set factory default values eeprom_write_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 1); int16_t z_shift = 8; //40C - 20um - 8usteps - EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT, &z_shift); + eeprom_update_word((uint16_t*)EEPROM_PROBE_TEMP_SHIFT, z_shift); z_shift = 24; //45C - 60um - 24usteps - EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + 2, &z_shift); + eeprom_update_word((uint16_t*)EEPROM_PROBE_TEMP_SHIFT + 1, z_shift); z_shift = 48; //50C - 120um - 48usteps - EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + 4, &z_shift); + eeprom_update_word((uint16_t*)EEPROM_PROBE_TEMP_SHIFT + 2, z_shift); z_shift = 80; //55C - 200um - 80usteps - EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + 6, &z_shift); + eeprom_update_word((uint16_t*)EEPROM_PROBE_TEMP_SHIFT + 3, z_shift); z_shift = 120; //60C - 300um - 120usteps - EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + 8, &z_shift); + eeprom_update_word((uint16_t*)EEPROM_PROBE_TEMP_SHIFT + 4, z_shift); SERIAL_PROTOCOLLN("factory restored"); } else if (code_seen('Z')) { // Z - Set all values to 0 (effectively disabling PINDA temperature compensation) eeprom_write_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 1); int16_t z_shift = 0; - for (uint8_t i = 0; i < 5; i++) EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + i * 2, &z_shift); + for (uint8_t i = 0; i < 5; i++) { + eeprom_update_word((uint16_t*)EEPROM_PROBE_TEMP_SHIFT + i, z_shift); + } SERIAL_PROTOCOLLN("zerorized"); } else if (code_seen('S')) { // Sxxx Iyyy - Set compensation ustep value S for compensation table index I @@ -8400,13 +8412,15 @@ Sigma_Exit: if (code_seen('I')) { uint8_t index = code_value(); if (index < 5) { - EEPROM_save_B(EEPROM_PROBE_TEMP_SHIFT + index * 2, &usteps); + eeprom_update_word((uint16_t*)EEPROM_PROBE_TEMP_SHIFT + index, usteps); SERIAL_PROTOCOLLN("OK"); SERIAL_PROTOCOLLN("index, temp, ustep, um"); for (uint8_t i = 0; i < 6; i++) { usteps = 0; - if (i>0) EEPROM_read_B(EEPROM_PROBE_TEMP_SHIFT + (i - 1) * 2, &usteps); + if (i > 0) { + usteps = eeprom_read_word((uint16_t*)EEPROM_PROBE_TEMP_SHIFT + (i - 1)); + } float mm = ((float)usteps) / cs.axis_steps_per_unit[Z_AXIS]; i == 0 ? SERIAL_PROTOCOLPGM("n/a") : SERIAL_PROTOCOL(i - 1); SERIAL_PROTOCOLPGM(", "); @@ -10898,7 +10912,7 @@ static void temp_compensation_apply() { if (calibration_status() == CALIBRATION_STATUS_CALIBRATED) { if (target_temperature_bed % 10 == 0 && target_temperature_bed >= 60 && target_temperature_bed <= 100) { i_add = (target_temperature_bed - 60) / 10; - EEPROM_read_B(EEPROM_PROBE_TEMP_SHIFT + i_add * 2, &z_shift); + z_shift = eeprom_read_word((uint16_t*)EEPROM_PROBE_TEMP_SHIFT + i_add); z_shift_mm = z_shift / cs.axis_steps_per_unit[Z_AXIS]; }else { //interpolation @@ -10928,7 +10942,10 @@ float temp_comp_interpolation(float inp_temperature) { shift[0] = 0; for (i = 0; i < n; i++) { - if (i>0) EEPROM_read_B(EEPROM_PROBE_TEMP_SHIFT + (i-1) * 2, &shift[i]); //read shift in steps from EEPROM + if (i > 0) { + //read shift in steps from EEPROM + shift[i] = eeprom_read_word((uint16_t*)EEPROM_PROBE_TEMP_SHIFT + (i - 1)); + } temp_C[i] = 50 + i * 10; //temperature in C #ifdef PINDA_THERMISTOR constexpr int start_compensating_temp = 35; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index d87f2b12..e01e17df 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2928,20 +2928,6 @@ static void lcd_menu_xyz_offset() menu_back_if_clicked(); } -// Save a single axis babystep value. -void EEPROM_save_B(int pos, int* value) -{ - eeprom_update_byte((unsigned char*)pos, (unsigned char)((*value) & 0xff)); - eeprom_update_byte((unsigned char*)pos + 1, (unsigned char)((*value) >> 8)); -} - -// Read a single axis babystep value. -void EEPROM_read_B(int pos, int* value) -{ - *value = (int)eeprom_read_byte((unsigned char*)pos) | (int)(eeprom_read_byte((unsigned char*)pos + 1) << 8); -} - - // Note: the colon behind the text (X, Y, Z) is necessary to greatly shorten // the implementation of menu_draw_float31 static void lcd_move_x() { @@ -3211,15 +3197,15 @@ void lcd_adjust_z() { fsm = cursor_pos; if (fsm == 1) { int babystepLoadZ = 0; - EEPROM_read_B(EEPROM_BABYSTEP_Z, &babystepLoadZ); + babystepLoadZ = eeprom_read_word((uint16_t*)EEPROM_BABYSTEP_Z); CRITICAL_SECTION_START babystepsTodo[Z_AXIS] = babystepLoadZ; CRITICAL_SECTION_END } else { int zero = 0; - EEPROM_save_B(EEPROM_BABYSTEP_X, &zero); - EEPROM_save_B(EEPROM_BABYSTEP_Y, &zero); - EEPROM_save_B(EEPROM_BABYSTEP_Z, &zero); + eeprom_update_word((uint16_t*)EEPROM_BABYSTEP_X, zero); + eeprom_update_word((uint16_t*)EEPROM_BABYSTEP_Y, zero); + eeprom_update_word((uint16_t*)EEPROM_BABYSTEP_Z, zero); } _delay(500); } @@ -4213,8 +4199,8 @@ void lcd_pick_babystep(){ if (lcd_clicked()) { fsm = cursor_pos; int babyStepZ; - EEPROM_read_B(EEPROM_BABYSTEP_Z0+((fsm-1)*2),&babyStepZ); - EEPROM_save_B(EEPROM_BABYSTEP_Z,&babyStepZ); + babyStepZ = eeprom_read_word((uint16_t*)EEPROM_BABYSTEP_Z0+(fsm-1)); + eeprom_update_word((uint16_t*)EEPROM_BABYSTEP_Z, babyStepZ); calibration_status_store(CALIBRATION_STATUS_CALIBRATED); _delay(500); @@ -5804,7 +5790,7 @@ void bowden_menu() { lcd_puts_at_P(1, i, PSTR("Extruder ")); lcd_print(i); lcd_print(": "); - EEPROM_read_B(EEPROM_BOWDEN_LENGTH + i * 2, &bowden_length[i]); + bowden_length[i] = eeprom_read_word((uint16_t*)EEPROM_BOWDEN_LENGTH + i); lcd_print(bowden_length[i] - 48); } @@ -5874,7 +5860,7 @@ void bowden_menu() { _delay(100); if (lcd_clicked()) { Sound_MakeSound(e_SOUND_TYPE_ButtonEcho); - EEPROM_save_B(EEPROM_BOWDEN_LENGTH + cursor_pos * 2, &bowden_length[cursor_pos]); + eeprom_update_word((uint16_t*)EEPROM_BOWDEN_LENGTH + cursor_pos, bowden_length[cursor_pos]); if (lcd_show_fullscreen_message_yes_no_and_wait_P(PSTR("Continue with another bowden?"))) { lcd_update_enable(true); lcd_clear(); @@ -5884,7 +5870,7 @@ void bowden_menu() { lcd_puts_at_P(1, i, PSTR("Extruder ")); lcd_print(i); lcd_print(": "); - EEPROM_read_B(EEPROM_BOWDEN_LENGTH + i * 2, &bowden_length[i]); + bowden_length[i] = eeprom_read_word((uint16_t*)EEPROM_BOWDEN_LENGTH + i); lcd_print(bowden_length[i] - 48); } diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 68b933d0..0b1f0fc6 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -30,8 +30,6 @@ void lcd_adjust_z(); void lcd_pick_babystep(); void lcd_alright(); void show_preheat_nozzle_warning(); -void EEPROM_save_B(int pos, int* value); -void EEPROM_read_B(int pos, int* value); void lcd_wait_interact(); void lcd_loading_filament(); void lcd_change_success();