Update Watchdog description
This commit is contained in:
		@@ -1004,14 +1004,17 @@
 | 
			
		||||
 | 
			
		||||
// @section safety
 | 
			
		||||
 | 
			
		||||
// The hardware watchdog should reset the microcontroller disabling all outputs,
 | 
			
		||||
// in case the firmware gets stuck and doesn't do temperature regulation.
 | 
			
		||||
/**
 | 
			
		||||
 * The watchdog hardware timer will do a reset and disable all outputs
 | 
			
		||||
 * if the firmware gets too overloaded to read the temperature sensors.
 | 
			
		||||
 *
 | 
			
		||||
 * If you find that watchdog reboot causes your AVR board to hang forever,
 | 
			
		||||
 * enable WATCHDOG_RESET_MANUAL to use a custom timer instead of WDTO.
 | 
			
		||||
 * NOTE: This method is less reliable as it can only catch hangups while
 | 
			
		||||
 * interrupts are enabled.
 | 
			
		||||
 */
 | 
			
		||||
#define USE_WATCHDOG
 | 
			
		||||
 | 
			
		||||
#if ENABLED(USE_WATCHDOG)
 | 
			
		||||
  // If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
 | 
			
		||||
  // The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
 | 
			
		||||
  //  However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
 | 
			
		||||
  //#define WATCHDOG_RESET_MANUAL
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,7 @@ void watchdog_init() {
 | 
			
		||||
    #define WDTO_NS WDTO_4S
 | 
			
		||||
  #endif
 | 
			
		||||
  #if ENABLED(WATCHDOG_RESET_MANUAL)
 | 
			
		||||
    // We enable the watchdog timer, but only for the interrupt.
 | 
			
		||||
    // Enable the watchdog timer, but only for the interrupt.
 | 
			
		||||
    // Take care, as this requires the correct order of operation, with interrupts disabled.
 | 
			
		||||
    // See the datasheet of any AVR chip for details.
 | 
			
		||||
    wdt_reset();
 | 
			
		||||
@@ -65,7 +65,7 @@ void watchdog_init() {
 | 
			
		||||
    SERIAL_ERROR_MSG(MSG_WATCHDOG_FIRED);
 | 
			
		||||
    minkill();  // interrupt-safe final kill and infinite loop
 | 
			
		||||
  }
 | 
			
		||||
#endif // WATCHDOG_RESET_MANUAL
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif // USE_WATCHDOG
 | 
			
		||||
#endif // __AVR__
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user