diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 5670023f..cd0069c8 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -475,8 +475,6 @@ uint16_t print_time_remaining_silent = PRINT_TIME_REMAINING_INIT; //estimated re const char axis_codes[NUM_AXIS] = {'X', 'Y', 'Z', 'E'}; float destination[NUM_AXIS] = { 0.0, 0.0, 0.0, 0.0}; -static float delta[3] = {0.0, 0.0, 0.0}; - // For tracing an arc static float offset[3] = {0.0, 0.0, 0.0}; static float feedrate = 1500.0, next_feedrate, saved_feedrate; @@ -1778,9 +1776,9 @@ void trace(); char chunk[CHUNK_SIZE+SAFETY_MARGIN]; int chunkHead = 0; -int serial_read_stream() { +void serial_read_stream() { - setTargetHotend(0, 0); + setAllTargetHotends(0); setTargetBed(0); lcd_clear(); @@ -1839,9 +1837,7 @@ int serial_read_stream() { card.closefile(); prusa_sd_card_upload = false; SERIAL_PROTOCOLLNRPGM(MSG_FILE_SAVED); - return 0; } - } } @@ -2876,9 +2872,7 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level) if (!onlyZ) { setTargetBed(0); - setTargetHotend(0, 0); - setTargetHotend(0, 1); - setTargetHotend(0, 2); + setAllTargetHotends(0); adjust_bed_reset(); //reset bed level correction } @@ -5264,7 +5258,10 @@ Sigma_Exit: if(setTargetedHotend(104)){ break; } - if (code_seen('S')) setTargetHotend(code_value(), tmp_extruder); + if (code_seen('S')) + { + setTargetHotendSafe(code_value(), tmp_extruder); + } setWatch(); break; case 112: // M112 -Emergency Stop @@ -5377,10 +5374,10 @@ Sigma_Exit: autotemp_enabled=false; #endif if (code_seen('S')) { - setTargetHotend(code_value(), tmp_extruder); + setTargetHotendSafe(code_value(), tmp_extruder); CooldownNoWait = true; } else if (code_seen('R')) { - setTargetHotend(code_value(), tmp_extruder); + setTargetHotendSafe(code_value(), tmp_extruder); CooldownNoWait = false; } #ifdef AUTOTEMP @@ -6368,9 +6365,7 @@ bFirst=false; if (millis() > waiting_start_time + (unsigned long)M600_TIMEOUT * 1000) { lcd_display_message_fullscreen_P(_i("Press knob to preheat nozzle and continue."));////MSG_PRESS_TO_PREHEAT c=20 r=4 wait_for_user_state = 1; - setTargetHotend(0, 0); - setTargetHotend(0, 1); - setTargetHotend(0, 2); + setAllTargetHotends(0); st_synchronize(); disable_e0(); disable_e1(); @@ -7510,7 +7505,7 @@ static void handleSafetyTimer() else if (safetyTimer.expired(safetytimer_inactive_time)) { setTargetBed(0); - setTargetHotend(0, 0); + setAllTargetHotends(0); lcd_show_fullscreen_message_and_wait_P(_i("Heating disabled by safety timer."));////MSG_BED_HEATING_SAFETY_DISABLED c=0 r=0 } } @@ -8315,9 +8310,7 @@ void long_pause() //long pause print plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 15, active_extruder); //set nozzle target temperature to 0 - setTargetHotend(0, 0); - setTargetHotend(0, 1); - setTargetHotend(0, 2); + setAllTargetHotends(0); //Move XY to side current_position[X_AXIS] = X_PAUSE_POS; @@ -8832,7 +8825,9 @@ enquecommand_P(PSTR("G4 S0")); void stop_and_save_print_to_ram(float z_move, float e_move) { if (saved_printing) return; +#if 0 unsigned char nplanner_blocks; +#endif unsigned char nlines; uint16_t sdlen_planner; uint16_t sdlen_cmdqueue; @@ -8840,7 +8835,9 @@ void stop_and_save_print_to_ram(float z_move, float e_move) cli(); if (card.sdprinting) { +#if 0 nplanner_blocks = number_of_blocks(); +#endif saved_sdpos = sdpos_atomic; //atomic sd position of last command added in queue sdlen_planner = planner_calc_sd_length(); //length of sd commands in planner saved_sdpos -= sdlen_planner; diff --git a/Firmware/SdFatUtil.cpp b/Firmware/SdFatUtil.cpp index 371627f2..51da4ee2 100644 --- a/Firmware/SdFatUtil.cpp +++ b/Firmware/SdFatUtil.cpp @@ -46,13 +46,10 @@ int SdFatUtil::FreeRam() { void SdFatUtil::set_stack_guard() { - char i = 0; uint32_t *stack_guard; stack_guard = (uint32_t*)&__bss_end; - //for (i = 0; i < 10; i++) { - *stack_guard = STACK_GUARD_TEST_VALUE; - //} + *stack_guard = STACK_GUARD_TEST_VALUE; } bool SdFatUtil::test_stack_integrity() @@ -63,12 +60,9 @@ bool SdFatUtil::test_stack_integrity() uint32_t SdFatUtil::get_stack_guard_test_value() { - //static char i = 0; uint32_t* stack_guard; uint32_t output; stack_guard = (uint32_t*)&__bss_end; - //output = *(stack_guard + i); - //i++; output = *stack_guard; return(output); } diff --git a/Firmware/cardreader.cpp b/Firmware/cardreader.cpp index e59b964c..82312efb 100644 --- a/Firmware/cardreader.cpp +++ b/Firmware/cardreader.cpp @@ -702,11 +702,12 @@ void CardReader::updir() { --workDirDepth; workDir = workDirParents[0]; - int d; - for (int d = 0; d < workDirDepth; d++) - workDirParents[d] = workDirParents[d+1]; + for (unsigned int d = 0; d < workDirDepth; d++) + { + workDirParents[d] = workDirParents[d+1]; + } #ifdef SDCARD_SORT_ALPHA - presort(); + presort(); #endif } } diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 15ee34da..166b108c 100644 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -1373,8 +1373,7 @@ void temp_runaway_stop(bool isPreheat, bool isBed) void disable_heater() { - for(int i=0;i<EXTRUDERS;i++) - setTargetHotend(0,i); + setAllTargetHotends(0); setTargetBed(0); #if defined(TEMP_0_PIN) && TEMP_0_PIN > -1 target_temperature[0]=0; diff --git a/Firmware/temperature.h b/Firmware/temperature.h index 462412d3..0633158c 100644 --- a/Firmware/temperature.h +++ b/Firmware/temperature.h @@ -142,6 +142,16 @@ FORCE_INLINE void setTargetHotend(const float &celsius, uint8_t extruder) { target_temperature[extruder] = celsius; }; +static inline void setTargetHotendSafe(const float &celsius, uint8_t extruder) +{ + if (extruder<EXTRUDERS) target_temperature[extruder] = celsius; +} + +static inline void setAllTargetHotends(const float &celsius) +{ + for(int i=0;i<EXTRUDERS;i++) setTargetHotend(celsius,i); +} + FORCE_INLINE void setTargetBed(const float &celsius) { target_temperature_bed = celsius; }; diff --git a/Firmware/tmc2130.cpp b/Firmware/tmc2130.cpp index 3aeedda0..1c219cc7 100644 --- a/Firmware/tmc2130.cpp +++ b/Firmware/tmc2130.cpp @@ -668,16 +668,6 @@ uint8_t tmc2130_rx(uint8_t axis, uint8_t addr, uint32_t* rval) return stat; } - -void tmc2130_eeprom_load_config() -{ -} - -void tmc2130_eeprom_save_config() -{ - -} - #define _GET_PWR_X (READ(X_ENABLE_PIN) == X_ENABLE_ON) #define _GET_PWR_Y (READ(Y_ENABLE_PIN) == Y_ENABLE_ON) #define _GET_PWR_Z (READ(Z_ENABLE_PIN) == Z_ENABLE_ON) diff --git a/Firmware/tmc2130.h b/Firmware/tmc2130.h index e3c476dc..28ecb7be 100644 --- a/Firmware/tmc2130.h +++ b/Firmware/tmc2130.h @@ -91,38 +91,6 @@ extern uint8_t tmc2130_usteps2mres(uint16_t usteps); extern bool tmc2130_wait_standstill_xy(int timeout); -extern void tmc2130_eeprom_load_config(); -extern void tmc2130_eeprom_save_config(); - - -#pragma pack(push) -#pragma pack(1) -struct -{ - uint8_t mres:5; // mres - byte 0, bit 0..4 microstep resolution - uint8_t reserved_0_0:2; // reserved - byte 0, bit 5..6 - uint8_t intpol:1; // intpol - byte 0, bit 7 linear interpolation to 255 usteps - uint8_t pwm_ampl:8; // pwm_ampl - byte 1, bit 0..7 pwm amplitude for silent mode - uint8_t pwm_grad:4; // pwm_grad - byte 2, bit 0..3 pwm gradient for silent mode - uint8_t pwm_freq:2; // pwm_freq - byte 2, bit 4..5 pwm frequency for silent mode - uint8_t reserved_2_0:2; // reserved - byte 2, bit 6..7 - uint16_t tcoolthrs:16; // tcoolthrs - byte 3..4 coolstep threshold / middle sensitivity - int8_t sg_thrs:8; // sg_thrs - byte 5, bit 0..7 stallguard sensitivity in high power / middle sensitivity - int8_t current_h:6; // current_h - byte 6, bit 0..5 holding current for high power mode - uint8_t reserved_6_0:2; // reserved - byte 6, bit 6..7 - int8_t current_r:6; // current_r - byte 7, bit 0..5 running current for high power mode - uint8_t reserved_7_0:2; // reserved - byte 7, bit 6..7 - int8_t home_sg_thrs:8; // sg_thrs - byte 8, bit 0..7 stallguard sensitivity for homing - int8_t home_current:6; // current_r - byte 9, bit 0..5 running current for homing - uint8_t reserved_9_0:2; // reserved - byte 9, bit 6..7 - int8_t home_dtcoolthrs:8; // dtcoolthrs - byte 10, bit 0..7 delta tcoolthrs for homing - int8_t dtcoolthrs_low:8; // dtcoolthrs - byte 11, bit 0..7 delta tcoolthrs for low sensitivity (based on value for middle sensitivity) - int8_t dtcoolthrs_high:8; // dtcoolthrs - byte 12, bit 0..7 delta tcoolthrs for high sensitivity (based on value for middle sensitivity) - int8_t sg_thrs_low:8; // sg_thrs - byte 13, bit 0..7 stallguard sensitivity in high power / low sensitivity - int8_t sg_thrs_high:8; // sg_thrs - byte 14, bit 0..7 stallguard sensitivity in high power / high sensitivity -} tmc2130_axis_config; -#pragma pack(pop) - extern uint16_t tmc2130_get_res(uint8_t axis); extern void tmc2130_set_res(uint8_t axis, uint16_t res); extern uint8_t tmc2130_get_pwr(uint8_t axis); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index cfbd3142..2093c21e 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -852,7 +852,7 @@ if (print_sd_status) lcd_set_cursor(7, 3); lcd_puts_P(PSTR(" ")); - for (int dots = 0; dots < heating_status_counter; dots++) + for (unsigned int dots = 0; dots < heating_status_counter; dots++) { lcd_set_cursor(7 + dots, 3); lcd_print('.'); @@ -1804,9 +1804,7 @@ void lcd_commands() cancel_heatup = true; setTargetBed(0); #if !(defined (SNMM) || defined (SNMM_V2)) - setTargetHotend(0, 0); //heating when changing filament for multicolor - setTargetHotend(0, 1); - setTargetHotend(0, 2); + setAllTargetHotends(0); #endif manage_heater(); custom_message = true; @@ -2036,9 +2034,7 @@ void lcd_preheat_flex() void lcd_cooldown() { - setTargetHotend0(0); - setTargetHotend1(0); - setTargetHotend2(0); + setAllTargetHotends(0); setTargetBed(0); fanSpeed = 0; lcd_return_to_status(); @@ -3126,7 +3122,7 @@ void lcd_adjust_z() { bool lcd_wait_for_pinda(float temp) { lcd_set_custom_characters_degree(); - setTargetHotend(0, 0); + setAllTargetHotends(0); setTargetBed(0); LongTimer pinda_timeout; pinda_timeout.start(); @@ -3166,7 +3162,7 @@ void lcd_wait_for_heater() { void lcd_wait_for_cool_down() { lcd_set_custom_characters_degree(); - setTargetHotend(0,0); + setAllTargetHotends(0); setTargetBed(0); while ((degHotend(0)>MAX_HOTEND_TEMP_CALIBRATION) || (degBed() > MAX_BED_TEMP_CALIBRATION)) { lcd_display_message_fullscreen_P(_i("Waiting for nozzle and bed cooling"));////MSG_WAITING_TEMP c=20 r=3 @@ -6712,7 +6708,7 @@ static bool lcd_selfcheck_axis(int _axis, int _travel) plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[3], manual_feedrate[0] / 60, active_extruder); st_synchronize(); #ifdef TMC2130 - if ((READ(Z_MIN_PIN) ^ Z_MIN_ENDSTOP_INVERTING == 1)) + if (((READ(Z_MIN_PIN) ^ Z_MIN_ENDSTOP_INVERTING) == 1)) #else //TMC2130 if (((READ(X_MIN_PIN) ^ X_MIN_ENDSTOP_INVERTING) == 1) || ((READ(Y_MIN_PIN) ^ Y_MIN_ENDSTOP_INVERTING) == 1) ||