Merge pull request #2809 from leptun/PFW-1134-ALTFAN_KILLSWITCH
Pfw 1134
This commit is contained in:
commit
772844678f
@ -1,5 +1,5 @@
|
||||
#include "Dcodes.h"
|
||||
//#include "Marlin.h"
|
||||
#include "Marlin.h"
|
||||
#include "Configuration.h"
|
||||
#include "language.h"
|
||||
#include "cmdqueue.h"
|
||||
@ -226,9 +226,7 @@ void dcode_0()
|
||||
LOG("D0 - Reset\n");
|
||||
if (code_seen('B')) //bootloader
|
||||
{
|
||||
cli();
|
||||
wdt_enable(WDTO_15MS);
|
||||
while(1);
|
||||
softReset();
|
||||
}
|
||||
else //reset
|
||||
{
|
||||
@ -252,8 +250,7 @@ void dcode_1()
|
||||
cli();
|
||||
for (int i = 0; i < 8192; i++)
|
||||
eeprom_write_byte((unsigned char*)i, (unsigned char)0xff);
|
||||
wdt_enable(WDTO_15MS);
|
||||
while(1);
|
||||
softReset();
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -420,8 +417,7 @@ void dcode_5()
|
||||
boot_dst_addr = (uint32_t)address;
|
||||
boot_src_addr = (uint32_t)(&data);
|
||||
bootapp_print_vars();
|
||||
wdt_enable(WDTO_15MS);
|
||||
while(1);
|
||||
softReset();
|
||||
}
|
||||
while (count)
|
||||
{
|
||||
@ -467,8 +463,7 @@ void dcode_7()
|
||||
boot_copy_size = (uint16_t)0xc00;
|
||||
boot_src_addr = (uint32_t)0x0003e400;
|
||||
boot_dst_addr = (uint32_t)0x0003f400;
|
||||
wdt_enable(WDTO_15MS);
|
||||
while(1);
|
||||
softReset();
|
||||
*/
|
||||
}
|
||||
|
||||
|
@ -512,4 +512,6 @@ void load_filament_final_feed();
|
||||
void marlin_wait_for_click();
|
||||
void raise_z_above(float target, bool plan=true);
|
||||
|
||||
extern "C" void softReset();
|
||||
|
||||
#endif
|
||||
|
@ -648,6 +648,12 @@ void failstats_reset_print()
|
||||
#endif
|
||||
}
|
||||
|
||||
void softReset()
|
||||
{
|
||||
cli();
|
||||
wdt_enable(WDTO_15MS);
|
||||
while(1);
|
||||
}
|
||||
|
||||
|
||||
#ifdef MESH_BED_LEVELING
|
||||
@ -762,6 +768,7 @@ static void factory_reset(char level)
|
||||
}
|
||||
|
||||
}
|
||||
softReset();
|
||||
|
||||
|
||||
break;
|
||||
@ -3813,9 +3820,7 @@ void process_commands()
|
||||
#if (defined(WATCHDOG) && (MOTHERBOARD == BOARD_EINSY_1_0a))
|
||||
boot_app_magic = BOOT_APP_MAGIC;
|
||||
boot_app_flags = BOOT_APP_FLG_RUN;
|
||||
wdt_enable(WDTO_15MS);
|
||||
cli();
|
||||
while(1);
|
||||
softReset();
|
||||
#else //WATCHDOG
|
||||
asm volatile("jmp 0x3E000");
|
||||
#endif //WATCHDOG
|
||||
@ -11716,7 +11721,6 @@ void disable_force_z()
|
||||
#endif // TMC2130
|
||||
}
|
||||
|
||||
|
||||
void enable_force_z()
|
||||
{
|
||||
if(bEnableForce_z)
|
||||
|
@ -9,6 +9,8 @@
|
||||
extern FILE _uartout;
|
||||
#define uartout (&_uartout)
|
||||
|
||||
extern void softReset();
|
||||
|
||||
void bootapp_print_vars(void)
|
||||
{
|
||||
fprintf_P(uartout, PSTR("boot_src_addr =0x%08lx\n"), boot_src_addr);
|
||||
@ -39,8 +41,7 @@ void bootapp_ram2flash(uint16_t rptr, uint16_t fptr, uint16_t size)
|
||||
boot_src_addr = (uint32_t)rptr;
|
||||
boot_dst_addr = (uint32_t)fptr;
|
||||
bootapp_print_vars();
|
||||
wdt_enable(WDTO_15MS);
|
||||
while(1);
|
||||
softReset();
|
||||
}
|
||||
|
||||
void bootapp_reboot_user0(uint8_t reserved)
|
||||
@ -50,6 +51,5 @@ void bootapp_reboot_user0(uint8_t reserved)
|
||||
boot_app_flags = BOOT_APP_FLG_USER0;
|
||||
boot_reserved = reserved;
|
||||
bootapp_print_vars();
|
||||
wdt_enable(WDTO_15MS);
|
||||
while(1);
|
||||
softReset();
|
||||
}
|
||||
|
@ -359,8 +359,12 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP
|
||||
| ^ | ^ | ^ | 00h 0 | ^ | LCD backlight mode: __Dim__ | ^ | ^
|
||||
| 0x0D30 3376 | uint16 | EEPROM_BACKLIGHT_TIMEOUT | 01 00 - ff ff | 0a 00h 65535 | LCD backlight timeout: __10__ seconds | LCD menu | D3 Ax0d30 C2
|
||||
| 0x0D2C 3372 | float | EEPROM_UVLO_LA_K | ??? | ff ff ff ffh | Power panic saved Linear Advanced K value | ??? | D3 Ax0d2c C4
|
||||
| 0x0D2B 3371 | uint8 | EEPROM_ALTFAN_OVERRIDE | 0-1 | 00h 0 | ALTFAN override | LCD menu | D3 Ax0d2b C1
|
||||
| 0x0D2A 3370 | uint8 | EEPROM_EXPERIMENTAL_VISIBILITY | 0-1 | 00h 0 | Experimental menu visibility | LCD menu | D3 Ax0d2a C1
|
||||
| 0x0D2B 3371 | uint8 | EEPROM_ALTFAN_OVERRIDE | ffh 255 | ffh 255 | ALTFAN override unknown state | LCD menu | D3 Ax0d2b C1
|
||||
| ^ | ^ | ^ | 00h 0 | ^ | ALTFAN override deactivated | ^ | ^
|
||||
| ^ | ^ | ^ | 01h 1 | ^ | ALTFAN override activated | ^ | ^
|
||||
| 0x0D2A 3370 | uint8 | EEPROM_EXPERIMENTAL_VISIBILITY | ffh 255 | ffh 255 | Experimental menu visibility unknown state | LCD menu | D3 Ax0d2a C1
|
||||
| ^ | ^ | ^ | 00h 0 | ^ | Experimental menu visibility hidden | ^ | ^
|
||||
| ^ | ^ | ^ | 01h 1 | ^ | Experimental menu visibility visible | ^ | ^
|
||||
|
||||
|
||||
| Address begin | Bit/Type | Name | Valid values | Default/FactoryReset | Description | Gcode/Function| Debug code
|
||||
|
@ -238,7 +238,7 @@ bool extruder_altfan_detect()
|
||||
uint8_t overrideVal = eeprom_read_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE);
|
||||
if (overrideVal == EEPROM_EMPTY_VALUE)
|
||||
{
|
||||
overrideVal = 0;
|
||||
overrideVal = (calibration_status() == CALIBRATION_STATUS_CALIBRATED) ? 1 : 0;
|
||||
eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, overrideVal);
|
||||
}
|
||||
altfanStatus.altfanOverride = overrideVal;
|
||||
|
@ -2096,9 +2096,6 @@ static void lcd_preheat_menu()
|
||||
//! @code{.unparsed}
|
||||
//! | Voltages | MSG_MENU_VOLTAGES
|
||||
//! @endcode
|
||||
//!
|
||||
//!
|
||||
//! | Experimental | c=18
|
||||
//!
|
||||
//!
|
||||
//! If DEBUG_BUILD is defined
|
||||
@ -2111,12 +2108,11 @@ static void lcd_preheat_menu()
|
||||
static void lcd_support_menu()
|
||||
{
|
||||
typedef struct
|
||||
{ // 23bytes total
|
||||
{ // 22bytes total
|
||||
int8_t status; // 1byte
|
||||
bool is_flash_air; // 1byte
|
||||
uint8_t ip[4]; // 4bytes
|
||||
char ip_str[3*4+3+1]; // 16bytes
|
||||
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]);
|
||||
@ -2131,13 +2127,6 @@ static void lcd_support_menu()
|
||||
_md->ip[0], _md->ip[1],
|
||||
_md->ip[2], _md->ip[3]);
|
||||
|
||||
_md->experimental_menu_visibility = eeprom_read_byte((uint8_t *)EEPROM_EXPERIMENTAL_VISIBILITY);
|
||||
if (_md->experimental_menu_visibility == EEPROM_EMPTY_VALUE)
|
||||
{
|
||||
_md->experimental_menu_visibility = 0;
|
||||
eeprom_update_byte((uint8_t *)EEPROM_EXPERIMENTAL_VISIBILITY, _md->experimental_menu_visibility);
|
||||
}
|
||||
|
||||
} else if (_md->is_flash_air &&
|
||||
_md->ip[0] == 0 && _md->ip[1] == 0 &&
|
||||
_md->ip[2] == 0 && _md->ip[3] == 0 &&
|
||||
@ -2222,11 +2211,6 @@ static void lcd_support_menu()
|
||||
MENU_ITEM_SUBMENU_P(_i("Voltages"), lcd_menu_voltages);////MSG_MENU_VOLTAGES c=18 r=1
|
||||
#endif //defined VOLT_BED_PIN || defined VOLT_PWR_PIN
|
||||
|
||||
if (_md->experimental_menu_visibility)
|
||||
{
|
||||
MENU_ITEM_SUBMENU_P(PSTR("Experimental"), lcd_experimental_menu);////MSG_MENU_EXPERIMENTAL c=18
|
||||
}
|
||||
|
||||
|
||||
#ifdef DEBUG_BUILD
|
||||
MENU_ITEM_SUBMENU_P(PSTR("Debug"), lcd_menu_debug);////c=18 r=1
|
||||
@ -5730,6 +5714,25 @@ static void sheets_menu()
|
||||
|
||||
void lcd_hw_setup_menu(void) // can not be "static"
|
||||
{
|
||||
typedef struct
|
||||
{// 2bytes total
|
||||
int8_t status;
|
||||
uint8_t experimental_menu_visibility;
|
||||
} _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]);
|
||||
|
||||
if (_md->status == 0 || lcd_draw_update)
|
||||
{
|
||||
_md->experimental_menu_visibility = eeprom_read_byte((uint8_t *)EEPROM_EXPERIMENTAL_VISIBILITY);
|
||||
if (_md->experimental_menu_visibility == EEPROM_EMPTY_VALUE)
|
||||
{
|
||||
_md->experimental_menu_visibility = 0;
|
||||
eeprom_update_byte((uint8_t *)EEPROM_EXPERIMENTAL_VISIBILITY, _md->experimental_menu_visibility);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
MENU_BEGIN();
|
||||
MENU_ITEM_BACK_P(_T(bSettings?MSG_SETTINGS:MSG_BACK)); // i.e. default menu-item / menu-item after checking mismatch
|
||||
|
||||
@ -5743,6 +5746,12 @@ void lcd_hw_setup_menu(void) // can not be "static"
|
||||
//! @todo Don't forget to remove this as soon Fsensor Detection works with mmu
|
||||
if(!mmu_enabled) MENU_ITEM_FUNCTION_P(PSTR("Fsensor Detection"), lcd_detect_IRsensor);
|
||||
#endif //IR_SENSOR_ANALOG
|
||||
|
||||
if (_md->experimental_menu_visibility)
|
||||
{
|
||||
MENU_ITEM_SUBMENU_P(PSTR("Experimental"), lcd_experimental_menu);////MSG_MENU_EXPERIMENTAL c=18
|
||||
}
|
||||
|
||||
MENU_END();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user