打印

F2812的看门狗总结

[复制链接]
1164|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
thf2008|  楼主 | 2009-10-29 15:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是我总结的F2812的看门狗功能使用!
看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。
硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。

TMS320F2812中涉及到看门狗的寄存器有:系统控制与状态寄存器SCSR,此寄存器包括看门狗覆盖位和看门狗中断使能/无效位。一般系统复位时,看门狗模块使能。
void EnableDog(void)
{

EALLOW;


SysCtrlRegs.WDCR= 0x0068; //0010 1000


EDIS;

}//使能看门狗,只有在SCSR寄存器中的WDOVERRIDE位置1时,WDCR.WDDIS才可以更改


void DisableDog(void)
{

EALLOW;


SysCtrlRegs.WDCR= 0x0068;//0110 1000


EDIS;

}//使看门狗无效
void KickDog(void)
{

EALLOW;


SysCtrlRegs.WDKEY = 0x0055;


SysCtrlRegs.WDKEY = 0x00AA;


EDIS;

}//喂狗使看门狗的计数器清零

相关帖子

沙发
linhai2009| | 2009-10-29 15:38 | 只看该作者
写的挺好的,收藏了

使用特权

评论回复
板凳
langwangjc| | 2011-4-10 19:36 | 只看该作者

使用特权

评论回复
地板
金鱼木鱼| | 2011-4-10 20:38 | 只看该作者
写的不错,顶

使用特权

评论回复
5
北理黒鳍| | 2011-4-11 12:55 | 只看该作者
恩,长见识了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

221

主题

2024

帖子

2

粉丝