diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 854a884aa..f08c682aa 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -152,8 +152,11 @@ uint8_t fanSpeedBckp = 255; bool fan_measuring = false; uint8_t fanState = 0; #ifdef EXTRUDER_ALTFAN_DETECT - bool extruderFanIsAltfan = false; //set to Noctua - uint8_t altfanOverride = 0; + struct + { + uint8_t isAltfan : 1; + uint8_t altfanOverride : 1; + } altfanStatus; #endif //EXTRUDER_ALTFAN_DETECT #endif @@ -226,12 +229,13 @@ bool extruder_altfan_detect() SET_INPUT(TACH_0); - altfanOverride = eeprom_read_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE); - if (altfanOverride == EEPROM_EMPTY_VALUE) + uint8_t overrideVal = eeprom_read_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE); + if (overrideVal == EEPROM_EMPTY_VALUE) { - altfanOverride = 0; - eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, altfanOverride); + overrideVal = 0; + eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, overrideVal); } + altfanStatus.altfanOverride = overrideVal; CRITICAL_SECTION_START; EICRB &= ~(1 << ISC61); @@ -246,20 +250,20 @@ bool extruder_altfan_detect() EIMSK &= ~(1 << INT6); countFanSpeed(); - extruderFanIsAltfan = fan_speed[0] > 100; + altfanStatus.isAltfan = fan_speed[0] > 100; setExtruderAutoFanState(1); - return extruderFanIsAltfan; + return altfanStatus.isAltfan; } void altfanOverride_toggle() { - altfanOverride = !altfanOverride; - eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, altfanOverride); + altfanStatus.altfanOverride = !altfanStatus.altfanOverride; + eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, altfanStatus.altfanOverride); } bool altfanOverride_get() { - return altfanOverride; + return altfanStatus.altfanOverride; } #endif //EXTRUDER_ALTFAN_DETECT @@ -515,7 +519,7 @@ void setExtruderAutoFanState(uint8_t state) if (fanState & 0x01) { #ifdef EXTRUDER_ALTFAN_DETECT - if (extruderFanIsAltfan && !altfanOverride) newFanSpeed = EXTRUDER_ALTFAN_SPEED_SILENT; + if (altfanStatus.isAltfan && !altfanStatus.altfanOverride) newFanSpeed = EXTRUDER_ALTFAN_SPEED_SILENT; else newFanSpeed = EXTRUDER_AUTO_FAN_SPEED; #else //EXTRUDER_ALTFAN_DETECT newFanSpeed = EXTRUDER_AUTO_FAN_SPEED; @@ -1377,7 +1381,7 @@ void temp_runaway_stop(bool isPreheat, bool isBed) SERIAL_ERROR_START; isBed ? SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HEATBED)") : SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HOTEND)"); #ifdef EXTRUDER_ALTFAN_DETECT - altfanOverride = 1; //full speed + altfanStatus.altfanOverride = 1; //full speed #endif //EXTRUDER_ALTFAN_DETECT setExtruderAutoFanState(3); SET_OUTPUT(FAN_PIN); @@ -1467,7 +1471,7 @@ void max_temp_error(uint8_t e) { WRITE(FAN_PIN, 1); WRITE(BEEPER, 1); #ifdef EXTRUDER_ALTFAN_DETECT - altfanOverride = 1; //full speed + altfanStatus.altfanOverride = 1; //full speed #endif //EXTRUDER_ALTFAN_DETECT setExtruderAutoFanState(3); // fanSpeed will consumed by the check_axes_activity() routine. diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index c2a3a8907..3207389d9 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2116,7 +2116,7 @@ static void lcd_support_menu() bool is_flash_air; // 1byte uint8_t ip[4]; // 4bytes char ip_str[3*4+3+1]; // 16bytes - uint8_t experimental_menu_visibility; //1byte + uint8_t experimental_menu_visibility; // 1byte } _menu_data_t; static_assert(sizeof(menu_data)>= sizeof(_menu_data_t),"_menu_data_t doesn't fit into menu_data"); _menu_data_t* _md = (_menu_data_t*)&(menu_data[0]);