Cleanup: use setTargetHotend consistently for one extruder

Main changes:
* setAllTargetHotends() is removed
* setTargetHotendSafe() is removed
* Extruder parameter on setTargetHotend() is dropped

Change in memory:
Flash: -192 bytes
SRAM: 0 bytes
This commit is contained in:
Guðni Már Gilbert 2023-01-27 01:07:33 +00:00 committed by DRracer
parent ed80defc2c
commit d66e2b66c2
8 changed files with 39 additions and 85 deletions

View File

@ -611,7 +611,7 @@ void crashdet_detected(uint8_t mask)
if (automatic_recovery_after_crash) { if (automatic_recovery_after_crash) {
enquecommand_P(PSTR("CRASH_RECOVER")); enquecommand_P(PSTR("CRASH_RECOVER"));
}else{ }else{
setTargetHotend(0, active_extruder); setTargetHotend(0);
// notify the user of *all* the axes previously affected, not just the last one // notify the user of *all* the axes previously affected, not just the last one
lcd_update_enable(false); lcd_update_enable(false);
@ -3223,7 +3223,7 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level)
if (!onlyZ) if (!onlyZ)
{ {
setTargetBed(0); setTargetBed(0);
setAllTargetHotends(0); setTargetHotend(0);
adjust_bed_reset(); //reset bed level correction adjust_bed_reset(); //reset bed level correction
} }
@ -3501,7 +3501,7 @@ static void mmu_M600_load_filament(bool automatic, float nozzle_temp) {
slot = choose_menu_P(_T(MSG_SELECT_EXTRUDER), _T(MSG_EXTRUDER)); slot = choose_menu_P(_T(MSG_SELECT_EXTRUDER), _T(MSG_EXTRUDER));
} }
setTargetHotend(nozzle_temp, active_extruder); setTargetHotend(nozzle_temp);
MMU2::mmu2.load_filament_to_nozzle(slot); MMU2::mmu2.load_filament_to_nozzle(slot);
@ -4787,7 +4787,6 @@ void process_commands()
if (start_temp < current_temperature_pinda) start_temp += 5; if (start_temp < current_temperature_pinda) start_temp += 5;
printf_P(_N("start temperature: %.1f\n"), start_temp); printf_P(_N("start temperature: %.1f\n"), start_temp);
// setTargetHotend(200, 0);
setTargetBed(70 + (start_temp - 30)); setTargetBed(70 + (start_temp - 30));
custom_message_type = CustomMsg::TempCal; custom_message_type = CustomMsg::TempCal;
@ -4843,7 +4842,6 @@ void process_commands()
printf_P(_N("\nStep: %d/6\n"), i + 2); printf_P(_N("\nStep: %d/6\n"), i + 2);
custom_message_state = i + 2; custom_message_state = i + 2;
setTargetBed(50 + 10 * (temp - 30) / 5); setTargetBed(50 + 10 * (temp - 30) / 5);
// setTargetHotend(255, 0);
current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
plan_buffer_line_curposXYZE(3000 / 60); plan_buffer_line_curposXYZE(3000 / 60);
current_position[X_AXIS] = PINDA_PREHEAT_X; current_position[X_AXIS] = PINDA_PREHEAT_X;
@ -5988,7 +5986,7 @@ Sigma_Exit:
{ {
if (code_seen('S')) if (code_seen('S'))
{ {
setTargetHotendSafe(code_value(), active_extruder); setTargetHotend(code_value());
} }
break; break;
} }
@ -6101,9 +6099,9 @@ Sigma_Exit:
autotemp_enabled=false; autotemp_enabled=false;
#endif #endif
if (code_seen('S')) { if (code_seen('S')) {
setTargetHotendSafe(code_value(), active_extruder); setTargetHotend(code_value());
} else if (code_seen('R')) { } else if (code_seen('R')) {
setTargetHotendSafe(code_value(), active_extruder); setTargetHotend(code_value());
} }
#ifdef AUTOTEMP #ifdef AUTOTEMP
if (code_seen('S')) autotemp_min=code_value(); if (code_seen('S')) autotemp_min=code_value();
@ -9273,7 +9271,7 @@ static void handleSafetyTimer()
else if (safetyTimer.expired(farm_mode?FARM_DEFAULT_SAFETYTIMER_TIME_ms:safetytimer_inactive_time)) else if (safetyTimer.expired(farm_mode?FARM_DEFAULT_SAFETYTIMER_TIME_ms:safetytimer_inactive_time))
{ {
setTargetBed(0); setTargetBed(0);
setAllTargetHotends(0); setTargetHotend(0);
lcd_show_fullscreen_message_and_wait_P(_i("Heating disabled by safety timer."));////MSG_BED_HEATING_SAFETY_DISABLED c=20 r=4 lcd_show_fullscreen_message_and_wait_P(_i("Heating disabled by safety timer."));////MSG_BED_HEATING_SAFETY_DISABLED c=20 r=4
} }
} }
@ -10303,7 +10301,7 @@ void long_pause() //long pause print
// Stop heaters // Stop heaters
heating_status = HeatingStatus::NO_HEATING; heating_status = HeatingStatus::NO_HEATING;
setAllTargetHotends(0); setTargetHotend(0);
// Lift z // Lift z
raise_z(Z_PAUSE_LIFT); raise_z(Z_PAUSE_LIFT);
@ -10369,7 +10367,7 @@ void uvlo_()
// Stop all heaters // Stop all heaters
uint8_t saved_target_temperature_bed = target_temperature_bed; uint8_t saved_target_temperature_bed = target_temperature_bed;
uint16_t saved_target_temperature_ext = target_temperature[active_extruder]; uint16_t saved_target_temperature_ext = target_temperature[active_extruder];
setAllTargetHotends(0); setTargetHotend(0);
setTargetBed(0); setTargetBed(0);
// Calculate the file position, from which to resume this print. // Calculate the file position, from which to resume this print.
@ -10541,7 +10539,7 @@ void uvlo_tiny()
#endif //TMC2130 #endif //TMC2130
// Stop all heaters // Stop all heaters
setAllTargetHotends(0); setTargetHotend(0);
setTargetBed(0); setTargetBed(0);
// When power is interrupted on the _first_ recovery an attempt can be made to raise the // When power is interrupted on the _first_ recovery an attempt can be made to raise the
@ -11083,7 +11081,7 @@ void stop_and_save_print_to_ram(float z_move, float e_move)
void restore_extruder_temperature_from_ram() { void restore_extruder_temperature_from_ram() {
if (degTargetHotend(active_extruder) != saved_extruder_temperature) if (degTargetHotend(active_extruder) != saved_extruder_temperature)
{ {
setTargetHotendSafe(saved_extruder_temperature, active_extruder); setTargetHotend(saved_extruder_temperature);
heating_status = HeatingStatus::EXTRUDER_HEATING; heating_status = HeatingStatus::EXTRUDER_HEATING;
wait_for_heater(_millis(), active_extruder); wait_for_heater(_millis(), active_extruder);
heating_status = HeatingStatus::EXTRUDER_HEATING_COMPLETE; heating_status = HeatingStatus::EXTRUDER_HEATING_COMPLETE;
@ -11334,18 +11332,16 @@ void M600_wait_for_user(float HotendTempBckp) {
if (_millis() > waiting_start_time + (unsigned long)M600_TIMEOUT * 1000) { if (_millis() > waiting_start_time + (unsigned long)M600_TIMEOUT * 1000) {
lcd_display_message_fullscreen_P(_i("Press the knob to preheat nozzle and continue."));////MSG_PRESS_TO_PREHEAT c=20 r=4 lcd_display_message_fullscreen_P(_i("Press the knob to preheat nozzle and continue."));////MSG_PRESS_TO_PREHEAT c=20 r=4
wait_for_user_state = 1; wait_for_user_state = 1;
setAllTargetHotends(0); setTargetHotend(0);
st_synchronize(); st_synchronize();
disable_e0(); disable_e0();
disable_e1();
disable_e2();
} }
break; break;
case 1: //nozzle target temperature is set to zero, waiting for user to start nozzle preheat case 1: //nozzle target temperature is set to zero, waiting for user to start nozzle preheat
delay_keep_alive(4); delay_keep_alive(4);
if (lcd_clicked()) { if (lcd_clicked()) {
setTargetHotend(HotendTempBckp, active_extruder); setTargetHotend(HotendTempBckp);
lcd_wait_for_heater(); lcd_wait_for_heater();
wait_for_user_state = 2; wait_for_user_state = 2;

View File

@ -163,7 +163,7 @@ static void trace() {
void serial_read_stream() { void serial_read_stream() {
setAllTargetHotends(0); setTargetHotend(0);
setTargetBed(0); setTargetBed(0);
lcd_clear(); lcd_clear();

View File

@ -96,7 +96,7 @@ void fanSpeedError(unsigned char _fan) {
} }
else { else {
// Nothing is going on, but still turn off heaters and report the error // Nothing is going on, but still turn off heaters and report the error
setTargetHotend0(0); setTargetHotend(0);
heating_status = HeatingStatus::NO_HEATING; heating_status = HeatingStatus::NO_HEATING;
} }
switch (_fan) { switch (_fan) {

View File

@ -507,7 +507,7 @@ void getHighESpeed()
t=AUTOTEMP_OLDWEIGHT*oldt+(1-AUTOTEMP_OLDWEIGHT)*t; t=AUTOTEMP_OLDWEIGHT*oldt+(1-AUTOTEMP_OLDWEIGHT)*t;
} }
oldt=t; oldt=t;
setTargetHotend0(t); setTargetHotend(t);
} }
#endif #endif

View File

@ -216,9 +216,7 @@ void checkHitEndstops()
card.sdprinting = false; card.sdprinting = false;
card.closefile(); card.closefile();
quickStop(); quickStop();
setTargetHotend0(0); setTargetHotend(0);
setTargetHotend1(0);
setTargetHotend2(0);
} }
#endif #endif
} }

View File

@ -2209,7 +2209,7 @@ ISR(TIMERx_COMPA_vect)
void disable_heater() void disable_heater()
{ {
setAllTargetHotends(0); setTargetHotend(0);
setTargetBed(0); setTargetBed(0);
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {

View File

@ -129,25 +129,11 @@ FORCE_INLINE float degTargetBed() {
}; };
// Doesn't save FLASH when FORCE_INLINE removed. // Doesn't save FLASH when FORCE_INLINE removed.
FORCE_INLINE void setTargetHotend(const float &celsius, uint8_t extruder) { FORCE_INLINE void setTargetHotend(const float &celsius) {
target_temperature[extruder] = celsius; target_temperature[0] = celsius;
resetPID(extruder); resetPID(0);
}; };
// Doesn't save FLASH when not inlined.
static inline void setTargetHotendSafe(const float &celsius, uint8_t extruder)
{
if (extruder<EXTRUDERS) {
setTargetHotend(celsius, extruder);
}
}
// Doesn't save FLASH when not inlined.
static inline void setAllTargetHotends(const float &celsius)
{
for(uint8_t i = 0; i < EXTRUDERS; i++) setTargetHotend(celsius, i);
}
FORCE_INLINE void setTargetBed(const float &celsius) { FORCE_INLINE void setTargetBed(const float &celsius) {
target_temperature_bed = celsius; target_temperature_bed = celsius;
}; };
@ -170,30 +156,8 @@ FORCE_INLINE bool isCoolingBed() {
#define degHotend0() degHotend(0) #define degHotend0() degHotend(0)
#define degTargetHotend0() degTargetHotend(0) #define degTargetHotend0() degTargetHotend(0)
#define setTargetHotend0(_celsius) setTargetHotend((_celsius), 0)
#define isHeatingHotend0() isHeatingHotend(0) #define isHeatingHotend0() isHeatingHotend(0)
#define isCoolingHotend0() isCoolingHotend(0) #define isCoolingHotend0() isCoolingHotend(0)
#if EXTRUDERS > 1
#define degHotend1() degHotend(1)
#define degTargetHotend1() degTargetHotend(1)
#define setTargetHotend1(_celsius) setTargetHotend((_celsius), 1)
#define isHeatingHotend1() isHeatingHotend(1)
#define isCoolingHotend1() isCoolingHotend(1)
#else
#define setTargetHotend1(_celsius) do{}while(0)
#endif
#if EXTRUDERS > 2
#define degHotend2() degHotend(2)
#define degTargetHotend2() degTargetHotend(2)
#define setTargetHotend2(_celsius) setTargetHotend((_celsius), 2)
#define isHeatingHotend2() isHeatingHotend(2)
#define isCoolingHotend2() isCoolingHotend(2)
#else
#define setTargetHotend2(_celsius) do{}while(0)
#endif
#if EXTRUDERS > 3
#error Invalid number of extruders
#endif
// return "false", if all heaters are 'off' (ie. "true", if any heater is 'on') // return "false", if all heaters are 'off' (ie. "true", if any heater is 'on')
#define CHECK_ALL_HEATERS (checkAllHotends()||(target_temperature_bed!=0)) #define CHECK_ALL_HEATERS (checkAllHotends()||(target_temperature_bed!=0))
@ -209,7 +173,7 @@ FORCE_INLINE void autotempShutdown(){
{ {
autotemp_enabled=false; autotemp_enabled=false;
if(degTargetHotend(active_extruder)>autotemp_min) if(degTargetHotend(active_extruder)>autotemp_min)
setTargetHotend(0,active_extruder); setTargetHotend(0);
} }
#endif #endif
} }

View File

@ -961,7 +961,7 @@ void lcd_commands()
if (lcd_commands_step == 2 && !pidTuningRunning()) { //saving to eeprom if (lcd_commands_step == 2 && !pidTuningRunning()) { //saving to eeprom
custom_message_state = 0; custom_message_state = 0;
lcd_setstatuspgm(_i("PID cal. finished"));////MSG_PID_FINISHED c=20 lcd_setstatuspgm(_i("PID cal. finished"));////MSG_PID_FINISHED c=20
setAllTargetHotends(0); // reset all hotends temperature including the number displayed on the main screen setTargetHotend(0);
if (_Kp != 0 || _Ki != 0 || _Kd != 0) { if (_Kp != 0 || _Ki != 0 || _Kd != 0) {
sprintf_P(cmd1, PSTR("M301 P%.2f I%.2f D%.2f"), _Kp, _Ki, _Kd); sprintf_P(cmd1, PSTR("M301 P%.2f I%.2f D%.2f"), _Kp, _Ki, _Kd);
enquecommand(cmd1); enquecommand(cmd1);
@ -1052,7 +1052,7 @@ void lcd_commands()
enquecommand_P(PSTR("M84 XY")); enquecommand_P(PSTR("M84 XY"));
lcd_update_enabled = false; //hack to avoid lcd_update recursion. lcd_update_enabled = false; //hack to avoid lcd_update recursion.
if (lcd_show_fullscreen_message_yes_no_and_wait_P(_T(MSG_NOZZLE_CNG_CHANGED), false) == LCD_LEFT_BUTTON_CHOICE) { if (lcd_show_fullscreen_message_yes_no_and_wait_P(_T(MSG_NOZZLE_CNG_CHANGED), false) == LCD_LEFT_BUTTON_CHOICE) {
setAllTargetHotends(0); setTargetHotend(0);
#ifdef TEMP_MODEL #ifdef TEMP_MODEL
temp_model_set_enabled(was_enabled); temp_model_set_enabled(was_enabled);
#endif //TEMP_MODEL #endif //TEMP_MODEL
@ -1105,7 +1105,7 @@ static void lcd_move_menu_axis();
static void lcd_cooldown() static void lcd_cooldown()
{ {
setAllTargetHotends(0); setTargetHotend(0);
setTargetBed(0); setTargetBed(0);
fanSpeed = 0; fanSpeed = 0;
lcd_return_to_status(); lcd_return_to_status();
@ -1896,11 +1896,9 @@ switch(eFilamentAction)
#endif //FILAMENT_SENSOR #endif //FILAMENT_SENSOR
) { ) {
nLevel=2; nLevel=2;
if(!bFilamentPreheatState) if(!bFilamentPreheatState) {
{ nLevel++;
nLevel++; }
// setTargetHotend0(0.0); // uncoment if return to base-state is required
}
menu_back(nLevel); menu_back(nLevel);
switch(eFilamentAction) switch(eFilamentAction)
{ {
@ -1931,7 +1929,7 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed)
{ {
uint8_t nLevel; uint8_t nLevel;
setTargetHotend0((float)nTemp); setTargetHotend((float)nTemp);
if (!shouldPreheatOnlyNozzle()) setTargetBed((float)nTempBed); if (!shouldPreheatOnlyNozzle()) setTargetBed((float)nTempBed);
{ {
@ -2075,8 +2073,8 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed)
bFilamentWaitingFlag = false; bFilamentWaitingFlag = false;
if (!bFilamentPreheatState) if (!bFilamentPreheatState)
{ {
setTargetHotend0(0.0); setTargetHotend(0);
if (!isPrintPaused) setTargetBed(0.0); if (!isPrintPaused) setTargetBed(0);
menu_back(); menu_back();
} }
menu_back(); menu_back();
@ -2831,7 +2829,7 @@ void pid_extruder()
#ifdef PINDA_THERMISTOR #ifdef PINDA_THERMISTOR
bool lcd_wait_for_pinda(float temp) { bool lcd_wait_for_pinda(float temp) {
setAllTargetHotends(0); setTargetHotend(0);
setTargetBed(0); setTargetBed(0);
LongTimer pinda_timeout; LongTimer pinda_timeout;
pinda_timeout.start(); pinda_timeout.start();
@ -2865,7 +2863,7 @@ void lcd_wait_for_heater() {
} }
void lcd_wait_for_cool_down() { void lcd_wait_for_cool_down() {
setAllTargetHotends(0); setTargetHotend(0);
setTargetBed(0); setTargetBed(0);
int fanSpeedBckp = fanSpeed; int fanSpeedBckp = fanSpeed;
fanSpeed = 255; fanSpeed = 255;
@ -4024,14 +4022,14 @@ void lcd_wizard(WizState state)
raise_z_above(MIN_Z_FOR_SWAP); raise_z_above(MIN_Z_FOR_SWAP);
//current filament needs to be unloaded and then new filament should be loaded //current filament needs to be unloaded and then new filament should be loaded
//start to preheat nozzle for unloading remaining PLA filament //start to preheat nozzle for unloading remaining PLA filament
setTargetHotend(PLA_PREHEAT_HOTEND_TEMP, 0); setTargetHotend(PLA_PREHEAT_HOTEND_TEMP);
lcd_display_message_fullscreen_P(_i("Now I will preheat nozzle for PLA.")); ////MSG_WIZARD_WILL_PREHEAT c=20 r=4 lcd_display_message_fullscreen_P(_i("Now I will preheat nozzle for PLA.")); ////MSG_WIZARD_WILL_PREHEAT c=20 r=4
wait_preheat(); wait_preheat();
//unload current filament //unload current filament
unload_filament(FILAMENTCHANGE_FINALRETRACT); unload_filament(FILAMENTCHANGE_FINALRETRACT);
//load filament //load filament
lcd_wizard_load(); lcd_wizard_load();
setTargetHotend(0, 0); //we are finished, cooldown nozzle setTargetHotend(0); //we are finished, cooldown nozzle
state = S::Restore; state = S::Restore;
} }
break; break;
@ -4044,7 +4042,7 @@ void lcd_wizard(WizState state)
#endif //TEMP_MODEL #endif //TEMP_MODEL
case S::IsFil: case S::IsFil:
//start to preheat nozzle and bed to save some time later //start to preheat nozzle and bed to save some time later
setTargetHotend(PLA_PREHEAT_HOTEND_TEMP, 0); setTargetHotend(PLA_PREHEAT_HOTEND_TEMP);
setTargetBed(PLA_PREHEAT_HPB_TEMP); setTargetBed(PLA_PREHEAT_HPB_TEMP);
wizard_event = lcd_show_fullscreen_message_yes_no_and_wait_P(_T(MSG_FILAMENT_LOADED), true); wizard_event = lcd_show_fullscreen_message_yes_no_and_wait_P(_T(MSG_FILAMENT_LOADED), true);
if (wizard_event == LCD_LEFT_BUTTON_CHOICE) { if (wizard_event == LCD_LEFT_BUTTON_CHOICE) {
@ -7010,17 +7008,15 @@ static bool selftest_irsensor()
{ {
public: public:
TempBackup(): TempBackup():
m_temp(degTargetHotend(active_extruder)), m_temp(degTargetHotend(active_extruder)){}
m_extruder(active_extruder){} ~TempBackup(){setTargetHotend(m_temp);}
~TempBackup(){setTargetHotend(m_temp,m_extruder);}
private: private:
float m_temp; float m_temp;
uint8_t m_extruder;
}; };
uint8_t progress; uint8_t progress;
{ {
TempBackup tempBackup; TempBackup tempBackup;
setTargetHotend(ABS_PREHEAT_HOTEND_TEMP,active_extruder); setTargetHotend(ABS_PREHEAT_HOTEND_TEMP);
progress = lcd_selftest_screen(TestScreen::Fsensor, 0, 1, true, 0); progress = lcd_selftest_screen(TestScreen::Fsensor, 0, 1, true, 0);
} }
progress = lcd_selftest_screen(TestScreen::Fsensor, progress, 1, true, 0); progress = lcd_selftest_screen(TestScreen::Fsensor, progress, 1, true, 0);