码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-04-19 17:50:12      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

一、功能:

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

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

   

二、模拟看门狗作用

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

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

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

标签:

原文地址:http://www.cnblogs.com/BlueMountain-HaggenDazs/p/4439402.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!