Add D100 Watchdog Test (#19697)
This commit is contained in:
		| @@ -25,8 +25,10 @@ | ||||
|  | ||||
|   #include "gcode.h" | ||||
|   #include "../module/settings.h" | ||||
|   #include "../module/temperature.h" | ||||
|   #include "../libs/hex_print.h" | ||||
|   #include "../HAL/shared/eeprom_if.h" | ||||
|   #include "../HAL/shared/Delay.h" | ||||
|  | ||||
|   /** | ||||
|    * Dn: G-code for development and testing | ||||
| @@ -84,6 +86,7 @@ | ||||
|         } | ||||
|       } break; | ||||
|  | ||||
|       #if ENABLED(EEPROM_SETTINGS) | ||||
|         case 3: { // D3 Read / Write EEPROM | ||||
|           uint8_t *pointer = parser.hex_adr_val('A'); | ||||
|           uint16_t len = parser.ushortval('C', 1); | ||||
| @@ -128,6 +131,7 @@ | ||||
|             SERIAL_EOL(); | ||||
|           } | ||||
|         } break; | ||||
|       #endif       | ||||
|  | ||||
|       case 4: { // D4 Read / Write PIN | ||||
|         // const uint8_t pin = parser.byteval('P'); | ||||
| @@ -167,6 +171,20 @@ | ||||
|           SERIAL_EOL(); | ||||
|         } | ||||
|       } break; | ||||
|  | ||||
|       case 100: { // D100 Disable heaters and attempt a hard hang (Watchdog Test) | ||||
|         SERIAL_ECHOLN("Disabling heaters and attempting to trigger Watchdog"); | ||||
|         SERIAL_ECHOLN("(USE_WATCHDOG " TERN(USE_WATCHDOG, "ENABLED", "DISABLED") ")"); | ||||
|         thermalManager.disable_all_heaters(); | ||||
|         delay(1000); // Allow time to print | ||||
|         DISABLE_ISRS(); | ||||
|         // Use a low-level delay that does not rely on interrupts to function | ||||
|         // Do not spin forever, to avoid thermal risks if heaters are enabled and | ||||
|         // watchdog does not work. | ||||
|         DELAY_US(10000000); | ||||
|         ENABLE_ISRS(); | ||||
|         SERIAL_ECHOLN("FAILURE: Watchdog did not trigger board reset."); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user