zoukankan      html  css  js  c++  java
  • 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();//防止程序跑飞
      }
    }
  • 相关阅读:
    iOS中的 .p12 证书的应用
    时间戳
    阿里云的esc
    iOS9 以上的真机调试 不用证书
    iOS UICollectionView数据少导致不能滚动
    jquery.js 库中的 选择器
    多媒体开发之---H.264中I帧和IDR帧的区别
    多媒体开发之---h264中 TS/ES 的区别
    多媒体开发之---h264中nal简介和i帧判断
    多媒体开发之---h264格式详解
  • 原文地址:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/4439402.html
Copyright © 2011-2022 走看看