Index: firmware/App/Services/WatchdogMgmt.c =================================================================== diff -u -r953879c2319ea70007bfc303422155dd162d87e5 -r8af2673f6c9142c9a16bb676447916ea788ae53d --- firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 953879c2319ea70007bfc303422155dd162d87e5) +++ firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 8af2673f6c9142c9a16bb676447916ea788ae53d) @@ -17,7 +17,8 @@ #include "CPLD.h" #include "FPGA.h" -#include "InternalADC.h" +#include "InternalADC.h" +#include "OperationModes.h" #include "SafetyShutdown.h" #include "SystemCommMessages.h" #include "Timers.h" @@ -118,7 +119,8 @@ if ( getCPLDWatchdogExpired() == PIN_SIGNAL_LOW ) { // Ignore expired watchdog until after watchdog POST - if ( WATCHDOG_SELF_TEST_STATE_COMPLETE == watchdogSelfTestState ) + if ( ( WATCHDOG_SELF_TEST_STATE_COMPLETE == watchdogSelfTestState ) || + ( getCurrentOperationMode() != MODE_INIT ) ) { #ifndef DEBUG_ENABLED activateAlarmNoData( ALARM_ID_WATCHDOG_EXPIRED ); @@ -186,14 +188,14 @@ SET_ALARM_WITH_2_F32_DATA( ALARM_ID_WATCHDOG_POST_TEST_FAILED, 3.0, audioCurrent ); watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; } - watchdogSelfTestTimerCount = getMSTimerCount(); - watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_RECOVER; } else { SET_ALARM_WITH_1_U32_DATA( ALARM_ID_WATCHDOG_POST_TEST_FAILED, 1 ); watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; } + watchdogSelfTestTimerCount = getMSTimerCount(); + watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_RECOVER; break; case WATCHDOG_SELF_TEST_STATE_RECOVER: