Other requested changes

This commit is contained in:
Alex Voinea 2020-08-04 10:43:30 +03:00
parent e0bf92cd4e
commit 654a3a0d79
No known key found for this signature in database
GPG Key ID: F5034E7CFCF2F973
2 changed files with 19 additions and 15 deletions

View File

@ -152,8 +152,11 @@ uint8_t fanSpeedBckp = 255;
bool fan_measuring = false; bool fan_measuring = false;
uint8_t fanState = 0; uint8_t fanState = 0;
#ifdef EXTRUDER_ALTFAN_DETECT #ifdef EXTRUDER_ALTFAN_DETECT
bool extruderFanIsAltfan = false; //set to Noctua struct
uint8_t altfanOverride = 0; {
uint8_t isAltfan : 1;
uint8_t altfanOverride : 1;
} altfanStatus;
#endif //EXTRUDER_ALTFAN_DETECT #endif //EXTRUDER_ALTFAN_DETECT
#endif #endif
@ -226,12 +229,13 @@ bool extruder_altfan_detect()
SET_INPUT(TACH_0); SET_INPUT(TACH_0);
altfanOverride = eeprom_read_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE); uint8_t overrideVal = eeprom_read_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE);
if (altfanOverride == EEPROM_EMPTY_VALUE) if (overrideVal == EEPROM_EMPTY_VALUE)
{ {
altfanOverride = 0; overrideVal = 0;
eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, altfanOverride); eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, overrideVal);
} }
altfanStatus.altfanOverride = overrideVal;
CRITICAL_SECTION_START; CRITICAL_SECTION_START;
EICRB &= ~(1 << ISC61); EICRB &= ~(1 << ISC61);
@ -246,20 +250,20 @@ bool extruder_altfan_detect()
EIMSK &= ~(1 << INT6); EIMSK &= ~(1 << INT6);
countFanSpeed(); countFanSpeed();
extruderFanIsAltfan = fan_speed[0] > 100; altfanStatus.isAltfan = fan_speed[0] > 100;
setExtruderAutoFanState(1); setExtruderAutoFanState(1);
return extruderFanIsAltfan; return altfanStatus.isAltfan;
} }
void altfanOverride_toggle() void altfanOverride_toggle()
{ {
altfanOverride = !altfanOverride; altfanStatus.altfanOverride = !altfanStatus.altfanOverride;
eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, altfanOverride); eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, altfanStatus.altfanOverride);
} }
bool altfanOverride_get() bool altfanOverride_get()
{ {
return altfanOverride; return altfanStatus.altfanOverride;
} }
#endif //EXTRUDER_ALTFAN_DETECT #endif //EXTRUDER_ALTFAN_DETECT
@ -515,7 +519,7 @@ void setExtruderAutoFanState(uint8_t state)
if (fanState & 0x01) if (fanState & 0x01)
{ {
#ifdef EXTRUDER_ALTFAN_DETECT #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 newFanSpeed = EXTRUDER_AUTO_FAN_SPEED;
#else //EXTRUDER_ALTFAN_DETECT #else //EXTRUDER_ALTFAN_DETECT
newFanSpeed = EXTRUDER_AUTO_FAN_SPEED; newFanSpeed = EXTRUDER_AUTO_FAN_SPEED;
@ -1377,7 +1381,7 @@ void temp_runaway_stop(bool isPreheat, bool isBed)
SERIAL_ERROR_START; SERIAL_ERROR_START;
isBed ? SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HEATBED)") : SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HOTEND)"); isBed ? SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HEATBED)") : SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HOTEND)");
#ifdef EXTRUDER_ALTFAN_DETECT #ifdef EXTRUDER_ALTFAN_DETECT
altfanOverride = 1; //full speed altfanStatus.altfanOverride = 1; //full speed
#endif //EXTRUDER_ALTFAN_DETECT #endif //EXTRUDER_ALTFAN_DETECT
setExtruderAutoFanState(3); setExtruderAutoFanState(3);
SET_OUTPUT(FAN_PIN); SET_OUTPUT(FAN_PIN);
@ -1467,7 +1471,7 @@ void max_temp_error(uint8_t e) {
WRITE(FAN_PIN, 1); WRITE(FAN_PIN, 1);
WRITE(BEEPER, 1); WRITE(BEEPER, 1);
#ifdef EXTRUDER_ALTFAN_DETECT #ifdef EXTRUDER_ALTFAN_DETECT
altfanOverride = 1; //full speed altfanStatus.altfanOverride = 1; //full speed
#endif //EXTRUDER_ALTFAN_DETECT #endif //EXTRUDER_ALTFAN_DETECT
setExtruderAutoFanState(3); setExtruderAutoFanState(3);
// fanSpeed will consumed by the check_axes_activity() routine. // fanSpeed will consumed by the check_axes_activity() routine.

View File

@ -2116,7 +2116,7 @@ static void lcd_support_menu()
bool is_flash_air; // 1byte bool is_flash_air; // 1byte
uint8_t ip[4]; // 4bytes uint8_t ip[4]; // 4bytes
char ip_str[3*4+3+1]; // 16bytes char ip_str[3*4+3+1]; // 16bytes
uint8_t experimental_menu_visibility; //1byte uint8_t experimental_menu_visibility; // 1byte
} _menu_data_t; } _menu_data_t;
static_assert(sizeof(menu_data)>= sizeof(_menu_data_t),"_menu_data_t doesn't fit into menu_data"); 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]); _menu_data_t* _md = (_menu_data_t*)&(menu_data[0]);