物联网ZigBee基础系列之6:CC2530控制WatchDog看门狗

  • 物联网
  • gjianw217
  • LV4工程师
  • |      2016-09-27 23:55:45
  • 浏览量 981
  • 回复:5
本帖最后由 gjianw217 于 2016-10-1 01:40 编辑 1 应用原理 看门狗是在软件跑飞的情况下CPU自恢复的一个方式,当软件在选定的时间间隔内不能置位看门狗定时器(WDT),WDT就复位系统。看门狗可用于电噪声,电源故障或静电放电等恶劣工作环境或高可靠性要求的环境。看门狗,又叫 watchdog timer,是一个定时器电路。一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零。如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,是MCU复位, 防止MCU死机。看门狗的作用就是防止程序发生死循环,或者说程序跑飞。 一般的控制芯片都含有一个看门狗模块,常用一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在看门狗定时器定时时间到之前对其进行复位。如果出现死循环,或者说PC指针不能回来,那么定时时间到后就会使单片机复位。 在CC2530中,看门狗定时器具备如下特性(1)四个可选的定时器间隔(2)看门狗模式(3)定时器模式(4)在定时器模式下产生中断请求 WDT 可以配置为一个看门狗定时器或一个通用的定时器。WDT 模块的运行由WDCTL 寄存器控制。看门狗定时器包括一个15 位计数器,它的频率由32kHz 时钟源规定。注意用户不能获得15 位计数器的内容。在所有供电模式下,15 位计数器的内容保留,且当重新进入主动模式,看门狗定时器继续计数。 2 寄存器 CC2530看门狗模块只有一个控制寄存器,具体如下图所示。 3 代码结构


#include 



typedef unsigned char uchar;

typedef unsigned int  uint;



#define LED1 P1_0       // P1.0口控制LED1

#define LED2 P1_1       // P1.1口控制LED2





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

* 名    称: DelayMS()

* 功    能: 以毫秒为单位延时 16M时约为535,系统时钟不修改默认为16M

* 入口参数: msec 延时参数,值越大,延时越久

* 出口参数: 无

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

void DelayMS(uint msec)

{ 

    uint i,j;

    

    for (i=0; i
4 实现效果 开启看门狗 关闭看门狗
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:4
大头 2016-09-29
楼主真棒 !
0   回复
举报
发布
SingleYork 2016-09-29
感谢分享……
0   回复
举报
发布
amrogue 2016-09-28
系列资料,先标记再学习。:lol
0   回复
举报
发布
gtrjolin1986 2016-09-28
这么系列非常好!
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子

上海固越电子科技有限公司 版权所有©       投诉、举报邮箱:contact@icxbk.com       客服、投诉、举报电话:021-31029100-9104

经营增值电信业务试点批复:沪通信管自贸[2019]24号 出版物经营许可证:新出发沪批字第Y8445号

沪ICP备18038102号  沪公网安备 31011702004806号 |营业执照