at91m42800看门狗中断程序实例

看门狗作为系统复位已经做了,可是有一点不爽,就是应用异常后,整个操作系统都重新启动了,还要再重新打开应用程序。本人觉得有点小题大做,所以想做看门狗的中断处理程序,希望程序... 看门狗作为系统复位已经做了,可是有一点不爽,就是应用异常后,整个操作系统都重新启动了,还要再重新打开应用程序。本人觉得有点小题大做,所以想做看门狗的中断处理程序,希望程序从哪里死,从哪里重新启动,希望大侠多多指点。 展开
 我来答
匿名用户
2013-06-28
展开全部
什么是看门狗呢?我也不是很清楚,网上资料说看门狗的作用就是防止程序发生死循环,或者说程序跑飞。工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定时间,不给把看门狗的计数清0,就会引起计数益处中断,产生系统复位。但是我知道S3c2440启动代码里一开始就禁止看门狗了。所以,一般都用不上吧。除非你的应用程序实时性比较高,那就得考虑用看门狗来看门了。#define GLOBAL_CLK 1#include "def.h"
#include "2440addr.h"
#include "mmu.h"
#include "option.h"#define LED1 (1<<5) // rGPB[5] =1 ;
#define LED2 (1<<6) // rGPB[6] =1 ;
#define LED3 (1<<7) // rGPB[7] =1 ;
#define LED4 (1<<8) // rGPB[8] =1 ;static int index=0;void Delay1(int time)
{
unsigned int i,j;
for(i=1;i<100;i++)
for(j=1;j<time;j++)
;
}void LightLED(void){ rGPBDAT = 0xfff;

if ( index==1 )
rGPBDAT=rGPBDAT & ~LED1;

if ( index==2 )
rGPBDAT=rGPBDAT & ~LED2;

if ( index==3)
rGPBDAT=rGPBDAT & ~LED3;

if ( index==4 )
rGPBDAT=rGPBDAT & ~LED4;

Delay1( 20000 ) ;

}
void __irq WatchDog_ISR(void){

rSUBSRCPND = BIT_SUB_WDT; //注意用到子中断源寄存器
rSRCPND = BIT_WDT_AC97;
rINTPND = BIT_WDT_AC97;

if (index >4 ){
index=1;
}
else{
index++;
}
LightLED();

} void EINT_Init(void){

ClearPending(BIT_WDT_AC97);

pISR_WDT_AC97=(unsigned int)WatchDog_ISR;
//Prescaler value=100; lock dividion factor=128;PCLK=67.5MHz
//t_watchdog=1/[PCLK/(Prescaler value+1)/Division_factor]=0.0002
//disable watchdog
rWTCON=0x6418; //01100100 00 0 11 0 0 0
//周期T=WTCNT*t_watchdog=3S
rWTDAT=15000;
rWTCNT=15000;

rINTMSK &= (~BIT_WDT_AC97);
rINTSUBMSK &= (~BIT_SUB_WDT); //这个要用子中断屏蔽寄存器

rWTCON=0x643c; //01100100 00 1 11 1 0 0 }

void Main(void){
rGPBCON = 0x015550;
rGPBUP = 0x7ff; ChangeClockDivider(3,1);
ChangeMPllValue(127,2,1);

MMU_Init();

EINT_Init();
while (1);

}上面的程序每隔3秒会自动点亮一个LED.实现定时跑马灯的效果。这个例子我本想参考按键的例子来写代码,但是中途发现按键的例子不适用于看门狗。因为看门狗是内部中断,按键是外部中断。另外最让我不明白的是,书上或是网上很多例子都用
pISR_WDT_AC97作为看门狗中断服务的向量地址。尝试用TIME0,TIME1都不行。奇怪啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式