加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

(3)DSP_28335关于看门狗

(2016-06-14 22:08:31)
分类: DSP学习

看门狗主要用来检测软件和硬件的运行状态,当内部计数器一处时将产生一个复位信号,为了避免不必要的复位,要求用户软件周期地对看门狗定时器进行复位。如不明原因使CPU中断程序,比如系统软件进入了一个死循环或者CPU的程序运行到了不确定的程序空间,会使系统不能正常工作。看门狗电流将产生一个复位信号使CPU复位,程序从系统软件的开始执行,从而有效的提高了系统的可靠性。

 

程序中一般是在主函数中,初始化时就禁止看门狗,等到初始化设置都结束时,打开看门狗。在主循环中进行喂狗。

下面是28335中的喂狗,禁止看门狗,使能看门狗函数例程;

 

//---------------------------------------------------------------------------

// Example: ServiceDog:

//---------------------------------------------------------------------------

// This function resets the watchdog timer.

// Enable this function for using ServiceDog in the application


void ServiceDog(void)

{

    EALLOW;

    SysCtrlRegs.WDKEY = 0x0055;

    SysCtrlRegs.WDKEY = 0x00AA;

    EDIS;

}


//---------------------------------------------------------------------------

// Example: DisableDog:

//---------------------------------------------------------------------------

// This function disables the watchdog timer.


void DisableDog(void)

{

    EALLOW;

    SysCtrlRegs.WDCR= 0x0068;

    EDIS;

}


void EnableDog(void)

{

    EALLOW;

    SysCtrlRegs.WDCR= 0x002E;///256*20M/512/32 时间

    EDIS;

}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有