那就是WDCTL(看门狗定时器控制寄存器)。我们先来看一下这个寄存器的具体的定义。
位号 位名 复位值 操作性 功能描述
7:4 CLR[3:0] 0000 R/W 看门狗复位,先写入0x0A再写入0x05复位看门狗,两次写入
不超过0.5个看门狗周期,读出为0000
3 EN 0 R/W 看门狗定时器使能位,在定时模式下写0停止计数,在看门狗
模式下写0无效
0 停止计数
1 启动看门狗/开始计数
2 MODE 0 R/W 看门狗定时器模式
0 看门狗模式
1 定时器模式
1:0 INT[1:0] 00 R/W 看门狗时间间隔选择
00 1秒
01 0.25秒
10 15.625毫秒
11 1.9毫秒
具体的寄存器介绍就是上面的这些。下面我们还是来看一下这两个实验里的比较重要的一些函数吧。
首先是看门狗初始化函数:
void Init_Watchdog(void)
{
WDCTL = 0x00;
//时间间隔一秒,看门狗模式
WDCTL |= 0x08;
//启动看门狗
}
喂狗程序:
void FeetDog(void)
{
WDCTL = 0xa0;
WDCTL = 0x50;
}