#include "sdk_common.h" #include "SEGGER_RTT.h" #include "nrf_drv_pwm.h" #include "usr_config.h" #include "nrf_drv_wdt.h" #include "system.h" #include "bsp_time.h" #if WATCHDOG_ENANBLE nrf_drv_wdt_channel_id m_channel_id; void feed_watchdog(void) { nrf_drv_wdt_channel_feed(m_channel_id); } /** * @brief WDT events handler. */ void wdt_event_handler(void) { SEGGER_RTT_printf(0,"wdt_event_handler:%d\n",TIME_GetTicks()); } static void WatchDog_Process(void) { feed_watchdog(); SEGGER_RTT_printf(0,"WatchDog_Process:%d\n",TIME_GetTicks()); } void watchdog_init(void){ uint32_t err_code; nrf_drv_wdt_config_t config = NRF_DRV_WDT_DEAFULT_CONFIG; config.interrupt_priority = WDT_IRQ_PRIORITY; config.reload_value = WDT_RELOAD_VALUE; err_code = nrf_drv_wdt_init(&config, wdt_event_handler); APP_ERROR_CHECK(err_code); err_code = nrf_drv_wdt_channel_alloc(&m_channel_id); APP_ERROR_CHECK(err_code); nrf_drv_wdt_enable(); Process_Start(1000,"WatchDog_Process",WatchDog_Process); } #endif