CC2540开发板学习笔记(八)—— 看门狗

一、功能:

     防止程序跑飞,使得系统重新进入工作状态,即一种复位操作吧。

     但需要不停地喂狗= =(就是不断的执行某种操作),假如说你的程序跑到了不知道哪里去的错误时,即不会实现喂狗,就会发生复位,程序就进入正常工作状态。

   

二、模拟看门狗作用

     加上注释相当于进入不正常的工作状态。

#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();//防止程序跑飞

  }

}

你可能感兴趣的:(学习笔记)