Halve memory usage of saved feedrate
Truncate the saved feedrate to an uint16_t. This is more than sufficient for recovery.
This commit is contained in:
parent
17176c1df2
commit
18eaf21baf
|
|
@ -383,7 +383,7 @@ bool saved_printing = false; //!< Print is paused and saved in RAM
|
||||||
static uint32_t saved_sdpos = 0; //!< SD card position, or line number in case of USB printing
|
static uint32_t saved_sdpos = 0; //!< SD card position, or line number in case of USB printing
|
||||||
uint8_t saved_printing_type = PRINTING_TYPE_SD;
|
uint8_t saved_printing_type = PRINTING_TYPE_SD;
|
||||||
static float saved_pos[4] = { 0, 0, 0, 0 };
|
static float saved_pos[4] = { 0, 0, 0, 0 };
|
||||||
static float saved_feedrate2 = 0;
|
static uint16_t saved_feedrate2 = 0; //!< Default feedrate (truncated from float)
|
||||||
static int saved_feedmultiply2 = 0;
|
static int saved_feedmultiply2 = 0;
|
||||||
static uint8_t saved_active_extruder = 0;
|
static uint8_t saved_active_extruder = 0;
|
||||||
static float saved_extruder_temperature = 0.0; //!< Active extruder temperature
|
static float saved_extruder_temperature = 0.0; //!< Active extruder temperature
|
||||||
|
|
@ -9621,7 +9621,7 @@ void uvlo_()
|
||||||
}
|
}
|
||||||
|
|
||||||
// save the global state at planning time
|
// save the global state at planning time
|
||||||
int feedrate_bckp;
|
uint16_t feedrate_bckp;
|
||||||
if (blocks_queued())
|
if (blocks_queued())
|
||||||
{
|
{
|
||||||
memcpy(saved_target, current_block->gcode_target, sizeof(saved_target));
|
memcpy(saved_target, current_block->gcode_target, sizeof(saved_target));
|
||||||
|
|
@ -9698,7 +9698,7 @@ void uvlo_()
|
||||||
eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 4), current_position[Y_AXIS]);
|
eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 4), current_position[Y_AXIS]);
|
||||||
eeprom_update_float((float*)EEPROM_UVLO_CURRENT_POSITION_Z , current_position[Z_AXIS]);
|
eeprom_update_float((float*)EEPROM_UVLO_CURRENT_POSITION_Z , current_position[Z_AXIS]);
|
||||||
// Store the current feed rate, temperatures, fan speed and extruder multipliers (flow rates)
|
// Store the current feed rate, temperatures, fan speed and extruder multipliers (flow rates)
|
||||||
EEPROM_save_B(EEPROM_UVLO_FEEDRATE, &feedrate_bckp);
|
eeprom_update_word((uint16_t*)EEPROM_UVLO_FEEDRATE, feedrate_bckp);
|
||||||
EEPROM_save_B(EEPROM_UVLO_FEEDMULTIPLY, &feedmultiply);
|
EEPROM_save_B(EEPROM_UVLO_FEEDMULTIPLY, &feedmultiply);
|
||||||
eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_HOTEND, target_temperature[active_extruder]);
|
eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_HOTEND, target_temperature[active_extruder]);
|
||||||
eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_BED, target_temperature_bed);
|
eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_BED, target_temperature_bed);
|
||||||
|
|
@ -9982,7 +9982,7 @@ void restore_print_from_eeprom() {
|
||||||
char dir_name[9];
|
char dir_name[9];
|
||||||
|
|
||||||
fan_speed_rec = eeprom_read_byte((uint8_t*)EEPROM_UVLO_FAN_SPEED);
|
fan_speed_rec = eeprom_read_byte((uint8_t*)EEPROM_UVLO_FAN_SPEED);
|
||||||
EEPROM_read_B(EEPROM_UVLO_FEEDRATE, &feedrate_rec);
|
feedrate_rec = eeprom_read_word((uint16_t*)EEPROM_UVLO_FEEDRATE);
|
||||||
EEPROM_read_B(EEPROM_UVLO_FEEDMULTIPLY, &feedmultiply_rec);
|
EEPROM_read_B(EEPROM_UVLO_FEEDMULTIPLY, &feedmultiply_rec);
|
||||||
SERIAL_ECHOPGM("Feedrate:");
|
SERIAL_ECHOPGM("Feedrate:");
|
||||||
MYSERIAL.print(feedrate_rec);
|
MYSERIAL.print(feedrate_rec);
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP
|
||||||
#define EEPROM_UVLO_CURRENT_POSITION_Z (EEPROM_FILE_POSITION - 4) //float for current position in Z
|
#define EEPROM_UVLO_CURRENT_POSITION_Z (EEPROM_FILE_POSITION - 4) //float for current position in Z
|
||||||
#define EEPROM_UVLO_TARGET_HOTEND (EEPROM_UVLO_CURRENT_POSITION_Z - 1)
|
#define EEPROM_UVLO_TARGET_HOTEND (EEPROM_UVLO_CURRENT_POSITION_Z - 1)
|
||||||
#define EEPROM_UVLO_TARGET_BED (EEPROM_UVLO_TARGET_HOTEND - 1)
|
#define EEPROM_UVLO_TARGET_BED (EEPROM_UVLO_TARGET_HOTEND - 1)
|
||||||
#define EEPROM_UVLO_FEEDRATE (EEPROM_UVLO_TARGET_BED - 2)
|
#define EEPROM_UVLO_FEEDRATE (EEPROM_UVLO_TARGET_BED - 2) //uint16_t
|
||||||
#define EEPROM_UVLO_FAN_SPEED (EEPROM_UVLO_FEEDRATE - 1)
|
#define EEPROM_UVLO_FAN_SPEED (EEPROM_UVLO_FEEDRATE - 1)
|
||||||
#define EEPROM_FAN_CHECK_ENABLED (EEPROM_UVLO_FAN_SPEED - 1)
|
#define EEPROM_FAN_CHECK_ENABLED (EEPROM_UVLO_FAN_SPEED - 1)
|
||||||
#define EEPROM_UVLO_MESH_BED_LEVELING (EEPROM_FAN_CHECK_ENABLED - 9*2)
|
#define EEPROM_UVLO_MESH_BED_LEVELING (EEPROM_FAN_CHECK_ENABLED - 9*2)
|
||||||
|
|
|
||||||
|
|
@ -118,7 +118,7 @@ typedef struct {
|
||||||
|
|
||||||
// Save/recovery state data
|
// Save/recovery state data
|
||||||
float gcode_target[NUM_AXIS]; // Target (abs mm) of the original Gcode instruction
|
float gcode_target[NUM_AXIS]; // Target (abs mm) of the original Gcode instruction
|
||||||
float gcode_feedrate; // Original feedrate
|
uint16_t gcode_feedrate; // Default and/or move feedrate
|
||||||
uint16_t sdlen; // Length of the Gcode instruction
|
uint16_t sdlen; // Length of the Gcode instruction
|
||||||
} block_t;
|
} block_t;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue