Hi Dale Wheat,
WDOG_CS1[EN] is the write once bit after reset.
After reset, the WDOG_CS1[EN] =1, the watchdog is enabled in default.
So, please check your start code, did you enable the watchdog again in the start code?
You can free run to main, then check WDOG_CS1[EN] bit, whether it is 1 or 0, if it is 1, it means you didn't write 0x00 to your WDOG_CS1 successfully, or it is wrote before you write 0x00.
Please check your code carefully again, if you still have problem, please refer to the official project which can be downloaded from this link:
FRDM-KEXX Driver Library Package
void start(void)
{
/* Disable the watchdog timer but enable update */
WDOG_DisableWDOGEnableUpdate();
#ifndef __GNUC__
#ifndef KEIL
/* Copy any vector or data sections that need to be in RAM */
common_startup();
#endif
#endif
/* Jump to main process */
main();
/* No actions to perform after this so wait forever */
while(1);
}
void WDOG_DisableWDOGEnableUpdate(void)
{
uint8_t u8Cs1 = WDOG->CS1;
uint8_t u8Cs2 = WDOG->CS2;
uint16_t u16TOVAL = WDOG->TOVAL;
uint16_t u16WIN = WDOG->WIN;
u8Cs1 &= ~WDOG_CS1_EN_MASK;
u8Cs1 |= WDOG_CS1_UPDATE_MASK;
/* First unlock the watchdog so that we can write to registers */
WDOG_Unlock();
WDOG->CS2 = u8Cs2;
WDOG->TOVAL = u16TOVAL;
WDOG->WIN = u16WIN;
WDOG->CS1 = u8Cs1;
}
Wish it helps you!
Have a great day,
Kerry
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------