一、功能:
防止程序跑飞,使得系统重新进入工作状态,即一种复位操作吧。
但需要不停地喂狗= =(就是不断的执行某种操作),假如说你的程序跑到了不知道哪里去的错误时,即不会实现喂狗,就会发生复位,程序就进入正常工作状态。
二、模拟看门狗作用
加上注释相当于进入不正常的工作状态。
#include<ioCC2540.h> #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();//防止程序跑飞 } }
时间: 2024-11-08 19:07:26