mini2440硬件篇之看门狗
扫描二维码
随时随地手机看文章
1.硬件原理
看门狗类似定时器,它的原理是一定时间内要喂狗(实质是往某个寄存器写值),否则,它就会咬你(就是重启)。
2.芯片手册
3.mini2440电路图
4.S3C2440寄存器
看门狗时钟源是PCLK,通过预分频器后,会再次分配得到4种频率,可以通过配置选择哪一个作为看门狗工作频率。第一次启动看门狗,往WTCNT写初始值,每个时钟周期WTCNT减1,在减到0以前必须再给它赋值,否则到0后会发出复位信号,然后从WATDAT自动再装入。
WTCON控制寄存器
[0]计数为零是否输出复位信号
[2]中断使能
[4:3]时钟选择,即分配比例
[5]启动看门狗
[15:8]预分频系数
watchdog.h
#ifndef__WTD_H__
#define__WTD_H__
voidWatchDogInit(void);
#endif
watchdog.c
#include"common.h"
staticvoid__irqWatchDogHandler(void)
{
rGPBDAT|=1;//蜂鸣器响
//清中断标志位
ClearPending(BIT_WDT_AC97);
ClearSubPending(BIT_SUB_WDT);
rWTCNT=50000;
}
voidWatchDogInit(void)
{
rWTCON=(0xF9<<8);//Prescaler=249,Division=16,时钟频率为12.5kHz
rWTCON&=~(1<<0);//禁止看门狗复位
rWTDAT=50000;//设置看门狗定时器超时时间为4秒(50÷12.5)
rWTCNT=50000;
rINTSUBMSK=~(BIT_SUB_WDT);//使能看门狗子中断
rINTMSK=~(BIT_WDT_AC97);//使能看门狗和AC97中断
pISR_WDT_AC97=WatchDogHandler;
rWTCON|=(1<<2|1<<5);//开启看门狗定时器中断
}