微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > 玩转蓝牙4.0系列教程(第一季)-第八课 CC2540的看门狗应用

玩转蓝牙4.0系列教程(第一季)-第八课 CC2540的看门狗应用

时间:10-02 整理:3721RD 点击:

今天给大家带来看门狗应用,项目中应用看门狗主要是为了实现防止程序跑飞掉,开门狗重新复位的功能,已间接使程序稳定性增强。为了防止程序不跑飞,我们必须定期在有限时间内喂狗,哈哈,不喂它,乱咬人;下面我们就来看看如何实现这个功能。





首先必须配置寄存器,配置成

   WDCTL = 0x00; //这是必须的,打开IDLE才能设置看门狗

   WDCTL |= 0x09;  //250ms,看门狗模式





实验现象,通过把喂狗函数去掉,系统不停在复位,不去掉系统运行才正常。

源代码如下:

/**************************************************

** 本程序只供学习使用,未经作者许可,不得用于其它任何用途

** 蓝牙4.0底板开发板

** 作者: shizhe

** 创始时间:2014-05-08

** 修改人:shizhe

** 修改时间:2014-05-08

** 修改人:shizhe

** 修改时间:2014-05-08

** 描述:  

**  看门狗实验不喂狗时小灯1也闪烁,喂狗后小灯1常亮…

** 版权所有,盗版必究。

**需要更多资料 https://shop59411198.taobao.com/

** Copyright(C) 联控智能 2014-2020

** All rights reserved

*************************************************/

#include<ioCC2540.h>

#define uint unsigned int

#define uchar unsigned char

#define LED1    P0_5

#define LED2    P1_0

#define LED3    P1_1

/****************************

      延时函数

*****************************/

void delay(unsigned int i)

{

   unsigned int j;

   for(j=0;j<i;j++){

   }

}

/****************************

      LED初始化函数

*****************************/

void InitLed(void)

{

  P1SEL &= ~0x03;  //P1_0,P1_1定为普通IO口

  P1DIR |= 0x03;  //P1_0,P1_1定义为输出

  P0SEL &= ~0x20;  //P0_5定为普通IO口

  P0DIR |= 0x20;  //P0_5定义为输出

  LED1 = 0;       //LED1灯熄灭   

  LED2 = 0;       //LED2灯熄灭   

  LED3 = 0;       //LED3灯熄灭

}

/****************************

      看门狗初始化函数

*****************************/

void Init_Watchdog(void)

{

  WDCTL = 0x00; //这是必须的,打开IDLE才能设置看门狗

  WDCTL |= 0x09;  //250ms,看门狗模式  

}

/****************************

      喂狗初始化函数

*****************************/

void FeetDog(void)

{

  WDCTL = 0xa0;

  WDCTL = 0x50;

}

void main()

{

  InitLed();                //调用初始化函数

  Init_Watchdog();

  LED1=0;

  while(1)

  {         

    LED2=~LED2;   

    LED3=~LED3;

    delay(30000);

    LED1=1;

    FeetDog();//防止程序跑飞,通过注释测试,观察LED1,系统在不停复位。

  }

}



Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top