说明
本例子只做软件异常时重置系统用,不需要用作定时器或唤醒用,所以不用打开watchdog中断。需要注意的是:如果上次启动开启过watchdog reset,想要关闭,下次启动必须清除CONFIG4内的WDT配置,否则watchdog还是启动的。
主要代码只是在CONFIG4寄存器对看门狗定时器WDT做使能关闭的配置([7:4],0xF0关闭重置只做定时器,0x50和其他任意值开启重置,但0x50在空闲或掉电模式下停止运行),由于是页擦除,所以先保存CONFIG0到CONFIG4的值再写入。

在操作前要执行TA时效访问保护。

参考代码
#include "N76E003.h"
#include "SFR_Macro.h"
#include "Function_define.h"
#include "Common.h"
#include "Delay.h"
#define EN_WATCHDOG
#define CRLF "\r\n"
#define CFG_READ 0xC0
#define CFG_ERASE 0xE2
#define CFG_BYTE_PROGRAM 0xE1
int is_watchdog_reset_enabled(void)
{
UINT8 cf4;
set_IAPEN;
IAPAL = 0x04;
IAPAH = 0x00;
IAPCN = CFG_READ;
set_IAPGO; //
51单片机看门狗配置

本文介绍了一种51单片机中看门狗定时器的配置方法,包括如何启用和禁用看门狗重置功能,并提供了一份详细的代码示例。通过修改CONFIG4寄存器设置,可以灵活地控制看门狗的行为。
最低0.47元/天 解锁文章
510

被折叠的 条评论
为什么被折叠?



