• 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();//防止程序跑飞
      }
    }
  • 相关阅读:
    Git:常用命令记录
    JS笔记(二):隐式转换
    vertical-align/line-height:水平垂直居中
    JS笔记(一):声明提升
    Array.prototype.sort():从一道面试题说起
    CSS笔记(一):选择器规范
    FreeCodeCamp:Profile Lookup
    tile_images_offset的简单使用
    vs2013快捷键等(转)
    Qt状态栏的使用(转)
  • 原文地址:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/4439402.html
Copyright © 2020-2023  润新知