1.目的
看门狗
2.分析
在实际项目中经常要用到看门狗 ,防止系统死机
3.平台:
协议栈版本:nRF52_SDK_0.9.2
编译软件:keil 5.12
硬件平台:pca10036
例子:SDK12\examples\ble_central_and_peripheral\experimental\ble_app_hrs_rscs_relay\pca10040\s132\arm4
4.步骤
1.添加看门狗驱动
nrf_drv_wdt.c在路径 \components\drivers_nrf\wdt
对应添加keil的的路劲
2.开启看门狗功能的宏
3.建立一个看门狗的文件夹 并添加到工程里面,如下图
wdog.c的内容如下
#include "wdog.h"
nrf_drv_wdt_channel_id m_channel_id;
/**
* @brief WDT events handler.
*/
void wdt_event_handler(void)
{
//NOTE: The max amount of time we can spend in WDT interrupt is two cycles of 32768[Hz] clock - after that, reset occurs
}
void WDT_Init(void)
{
uint32_t err_code = NRF_SUCCESS;
//Configure WDT.
nrf_drv_wdt_config_t config = NRF_DRV_WDT_DEAFULT_CONFIG;
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();
}
wdog.h文件如下
#ifndef __WDOG__H
#define __WDOG__H
#include "app_error.h"
#include "nrf_drv_wdt.h"
void WDT_Init(void);
#endif
在主函数里面初始化看门狗
这样 看门狗就完成了,,但是注意下载进去 程序经常复位
哪个是我们设置看门狗的溢出时间太短了
这样就ok 了 根据自己的需要设置看门狗超时