一、功能:
防止程序跑飞,使得系统重新进入工作状态,即一种复位操作吧。
但需要不停地喂狗= =(就是不断的执行某种操作),假如说你的程序跑到了不知道哪里去的错误时,即不会实现喂狗,就会发生复位,程序就进入正常工作状态。
二、模拟看门狗作用
加上注释相当于进入不正常的工作状态。
#include#define uint unsigned int#define uchar unsigned char//定义控制LED灯的端口#define LED1 P1_0#define LED2 P1_1 //定义LED2为P11口控制//函数声明void Delayms(uint xms); //延时函数void InitLed(void); //初始化P1口/****************************//延时函数*****************************/void Delayms(uint xms) //i=xms 即延时i毫秒{ uint i,j; for(i=xms;i>0;i--) for(j=587;j>0;j--);} /****************************//初始化程序*****************************/void InitLed(void){ P1DIR |= 0x03; //P1_0、P1_1定义为输出 LED1 = 0; //LED1灯熄灭 LED2 = 0; //LED2灯熄灭}void Init_Watchdog(void) { WDCTL = 0x00; //这是必须的,打开IDLE才能设置看门狗 WDCTL |= 0x08; //时间间隔一秒,看门狗模式 }void FeetDog(void) { WDCTL = 0xa0; WDCTL = 0x50; }/***************************//主函数***************************/void main(void){ InitLed(); //调用初始化函数 Init_Watchdog(); LED1=0; while(1) { LED2=~LED2; //仅指示作用。 Delayms(300); LED1=1; //通过注释测试,观察LED1,系统在不停复位。 FeetDog();//防止程序跑飞 }}