zoukankan      html  css  js  c++  java
  • ZigBee开发(9)--基础实验看门狗

    看门狗,眼熟的名字。无论在普通的 51,还是高级的 ARM。都离不开他的身影。

    一个完整的系统总需要一个看门狗,在你程序跑飞的时候帮你一把,使系统重新进入工作状态。它无疑是世界上最忠诚的狗。不过可千万别忘了喂它。

    CC2530 的看门狗很简单,只需要配置 1 个寄存器 WDCTL。功能如下表所示: (详细参考 CC2530 datasheet.pdf

    按照表格寄存器内容,我们对 WDCTL 具体配置可如下: 

    Init_Watchdog:
    WDCTL = 0x00; //这是必须的,打开 IDLE 才能设置看门狗
    WDCTL |= 0x08; //时间间隔一秒,看门狗模式
    
    
    
    FeedDog:
    WDCTL = 0xa0; //按寄存器描述来喂狗
    WDCTL = 0x50;

    完整代码:

    /**************************************
    程序描述:打开看门狗后,得记得喂狗,不然
    系统就会不停地复位了。把喂狗注
    释掉观察 LED1 现象
    **************************************/
    #include <ioCC2530.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 定义为输出
      P1INP |= 0X03; //打开下拉
      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=1;
      while(1)
      {
        LED2=~LED2; //仅指示作用。
        Delayms(300);
        LED1=0;
        //通过注释测试,观察 LED1,系统在不停复位。
        FeetDog(); //喂狗,防止程序跑飞
      }
    }
  • 相关阅读:
    VB.Command()的参数
    XAMPP 启动mysql报错 InnoDB: Error: could not open single-table tablespace file……
    在不安装Windows服务的情况下,如何进行调试或测试
    Java基础东西(按位操作运算)
    浅谈web应用的负载均衡、集群、高可用(HA)解决方案
    关于CSDN, cnblog, iteye和51cto四个博客网站的比较与分析
    bzoj2243[SDOI2011]染色
    洛谷P2740 [USACO4.2]草地排水Drainage Ditches
    bzoj4198[noi2015]荷马史诗
    矩阵快速幂模板(pascal)
  • 原文地址:https://www.cnblogs.com/tianxxl/p/9873455.html
Copyright © 2011-2022 走看看