/** * \brief Stop watch dog timer. */ __INLINE static void stop_wdt(void) { /* Disable WDT. */ #if SAM4L uint32_t wdt_reg = WDT->WDT_CTRL; wdt_reg &= ~(WDT_CTRL_EN | WDT_CTRL_KEY_Msk); wdt_reg |= WDT_CTRL_KEY(0x55u); WDT->WDT_CTRL = wdt_reg; wdt_reg &= ~WDT_CTRL_KEY_Msk; wdt_reg |= WDT_CTRL_KEY(0xAAu); WDT->WDT_CTRL = wdt_reg; #else WDT->WDT_MR = WDT_MR_WDDIS; #endif }
/** * \brief Set Control register function for WDT */ static void wdt_set_ctrl(uint32_t ctrl) { WDT->WDT_CTRL = ctrl | WDT_CTRL_KEY((uint32_t)0x55); WDT->WDT_CTRL = ctrl | WDT_CTRL_KEY((uint32_t)0xAA); }