首页天道酬勤,

,

张世龙 05-13 12:22 65次浏览

开发环境与平台开发板:粤嵌的GEC210开发板处理器: s5pv210处理器核心: Cortex-A8开发环境: Keil4看门狗的作用和本质嵌入式系统运行时受到外部干扰、系统错误如果对系统稳定性要求较高,则需要“看门狗”(WATCHDOG )电路来防止这种现象。 看门狗的作用是在系统死机或“飞走”时恢复系统运行。

看门狗本质上是计时器电路,通过设定倒计时时间来产生复位信号。 如果在倒计时信号结束前进行“喂狗”,则不产生复位信号。 一旦系统冻结或弹出,就无法执行给狗喂食的操作。 倒计时结束后会发出复位信号,系统的系统移植不会保持崩溃,系统会复位,保证系统的稳定性。

S5PV210看门狗的功能

1、计时器功能可以作为普通计时器使用。 那是16位定时器,可以产生中断。 中断的名称是WDT。

2、复位功能(即看门狗的功能)用作看门狗定时器,其时钟计数减少为0 )时,产生复位信号。

S5PV210看门狗结构

看门狗工作原理图标:

S5PV210看门狗计时器时间计算看门狗计时器溢出一次的时间主要与以下因素有关:1、预分频器

8位,0-255 2、再分频器

值为16、32、64、128。

看门狗计时器溢出一次的时间t_wdg=1 / (PCLK/(Prescaler+1) / Division factor)。

Prescaler是预分频器值,Division factor是再分频器的值

上面的看门狗计时器溢出一次的时间还不是最终时间。 看门狗的最终定时周期是

T=WDGDAT * t_wdg WDGDAT是看门狗数据寄存器的值。

S5PV210相关寄存器http://www.Sina.com/http://www.Sina.com /

1、看门狗控制寄存器

2、看门狗计数寄存器

在实验中,利用S5PV210看门狗计时器出现4秒的时机,在4秒内按下键K1时,修改WTCNT的值以防止计数器溢出。 否则,系统将重新启动。

编程3、看门狗数据寄存器

//看门狗相关寄存器定义typedef struct {unsigned int WTCON; 未指定的int wtd at; 未指定的int wt CNT; 未指定的int wtclrint; }wtdog; #定义wdg (* (volatilewtdog ) )0xE2700000 )4、看门狗中断清除寄存器

# include ' s5pv 210.h ' # include ' watchdog.h ' # define four _ sec _ wd G1//看门狗4S喂狗//看门狗初始化void wd _ inning //将看门狗重载寄存器的值设置为62500 * 0.000064 s=4s wdg.WTC on=0x 00004131; //初始化看门狗的分频系数65、再分频系数64 (最终频率为1/64 MHZ )、使能看门狗计时器#elseWDG.WTCNT=0x7a12; WDG.WTDAT=0x7a12; //将看门狗重载寄存器的值设置为31250 * 0.000064 s=2sw DG.WTC on=0x 00004131; //初始化看门狗的分频系数、再分频系数、看门狗计时器#endif }//给狗void feed _ dog { # if four _ sec _ wd gwdg.wt CNT=0xf 424; //62500 * 0.000064 s=4s # else wdg.wt CNT=0x7a 12; //31250 * 0.000064 s=2s # endif } http://www.Sina.com /

# include ' watchdog.h ' # include ' clock.h ' # include ' led.h ' # include ' key.h ' # include ' BEP.h ' led_init (; led_on_off (; WD_init (; for (; (if ) key_scan )==1) ) {feed_dog ); }}实验主要是指示灯闪烁,系统看门狗定时器溢出,系统复位,连续按键喂狗,系统不会复位,指示灯会长时间点亮。

注意事项:在手册中可以看到以下一节。

aninitialvaluemustbewrittentothewatchdogtimercount (wt CNT ) register,before the watchdog timer starts,

意思是要初始化看门狗计数寄存器必须在看门狗启动之前。 不能在启动看门狗之后初始化看门狗计数寄存器。

看门狗定时器的作用及原理,看门狗定时器的特性 51单片机24秒倒计时程序,看门狗定时器实验程序