当前位置:首页 > 单片机 > 单片机
[导读]S3C2440A的看门狗定时器是用于当其由于噪声和系统错误引起的故障干扰时恢复控制器的工作。它可以被用作普通16位内部定时器来请求中断服务。看门狗定时器产生128个PCLK周期的复位信号也就是说,在某些环境下,看门狗可以

S3C2440A的看门狗定时器是用于当其由于噪声和系统错误引起的故障干扰时恢复控制器的工作。它可以被用作普通16位内部定时器来请求中断服务。看门狗定时器产生128个PCLK周期的复位信号

也就是说,在某些环境下,看门狗可以当做定时器使用,当他中断的时候并不发生复位,只发生中断,我看看图


看门狗的中断和复位信号是可以依靠wtcon来切断的(看门狗的时钟是无法切断的)

使用看门狗主要靠这几个寄存器


用来选择时钟源,分频系数,启动看门狗以及看门狗中断和复位的连接



流程基本上就是,第一次对wtcnt赋值之后启动看门狗,看门狗自动减,到达0的时候触发中断,如果连接了复位则触发复位

未连接则触发中断,另外,看门狗定时器数据寄存器(WTDAT)的值不能被自动重载到定时计数器(WTCNT)中。由于这个理由,必须在看门狗定时器启动前写入一个初始值到看门狗定时器计数寄存器(WTCNT)中

请看具体代码,两种看门狗的使用都有

#include"watchdog.h"u8wwdgUp=0;void__irqWdt_Int(void){rSRCPND"=BIT_WDT_AC97;rINTPND|=BIT_WDT_AC97;rSUBSRCPND|=BIT_SUB_WDT;//清除中断标志//WatchdogInit(0);wwdgUp=1;}//看门狗不连接系统复位//prescaler分频系数8位//mux始终选择0161322643128//countValue计数值voidWWDGInitForTimer(u8prescaler,u8mux,u16countValue){rWTCON&=~(1<<5);//看门狗禁止rWTCON&=0xff00;//清除预分频系数rWTCON|=prescaler<<8;//设置预分频系数rWTCON&=~(0x03<<3);rWTCON|=mux<<3;//设置时钟选择器rWTCON|=1<<2;//使能中断]rWTCON&=~(1<<0);//禁止复位rWTDAT=countValue;rWTCNT=countValue;//初次使用,必须设置CNT的值rSRCPND|=BIT_WDT_AC97;//清除标志rINTPND|=BIT_WDT_AC97;rSUBSRCPND|=BIT_SUB_WDT;//清除子中断标志rINTMOD&=~BIT_WDT_AC97;//设置中断模式为IRQ模式rINTMSK&=~(BIT_WDT_AC97);//开中断rINTSUBMSK&=~(BIT_SUB_WDT);//开子中断pISR_WDT_AC97=(unsigned)Wdt_Int;//设置中断程序入口rWTCON|=(1<<5);//看门狗启动}//看门狗连接系统复位//prescaler分频系数8位//mux始终选择0161322643128//countValue计数值voidWWDGInitForReset(u8prescaler,u8mux,u16countValue){rWTCON&=~(1<<5);//看门狗禁止rWTCON&=0xff00;//清除预分频系数rWTCON|=prescaler<<8;//设置预分频系数rWTCON&=~(0x03<<3);rWTCON|=mux<<3;//设置时钟选择器rWTCON&=~(1<<2);//禁止中断]rWTCON|=(1<<0);//使能复位rWTDAT=countValue;rWTCNT=countValue;//初次使用,必须设置CNT的值rWTCON|=(1<<5);//看门狗启动}voidWatchfeed(u16count)//看门狗喂狗{rWTCNT=count;//喂狗}

#ifndef__WATCHDOG_H#define__WATCHDOG_H#include"2440addr.h"#include"def.h"voidWWDGInitForTimer(u8prescaler,u8mux,u16countValue);voidWWDGInitForReset(u8prescaler,u8mux,u16countValue);voidWatchfeed(u16count);//看门狗喂狗externu8wwdgUp;#endif


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环。程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果。所以...

关键字: 单片机 看门狗 计算机

STC单片机是一款增强型51单片机,完全兼容MCS-51,还增加了新的功能,比如新增两级中断优先级,多一个外中断,内置EEPROM,硬件看门狗,具有掉电模式,512B内存等。还支持ISP下载,不用编程器,只要一个MAX2...

关键字: 单片机 看门狗 中断

今天要学习的是独立看门狗,看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其 工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的 这个引脚上送入高电平(或低电平),这一...

关键字: 看门狗 中断函数 单片机

看门狗(watch dog)是一个定时器,可以设置一个定时时间,计时到时会把MCU复位,所以MCU必须要在定时时间到之前将计数值重置(这个动作通常称为喂狗)。在嵌入式系统中加入看门狗,可以监测MCU是否还在正常运行,如果...

关键字: 看门狗 定时器

我们是否因系统上出现意外的电压尖峰或电流浪涌而担心系统安全?电流浪涌和电压尖峰可能是由系统上运行的软件引起的。来自软件的意外命令会使系统陷入无限循环,从而导致电源轨上出现电流浪涌或电压尖峰,并可能损坏设备。

关键字: 看门狗 电流浪涌

本文主要介绍AUTOSAR架构下的WdgDriverWdgIfWdgM模块,分析模块之间的依赖关系以及运行原理以帮助快速理解。本文以MPC5746R为主控芯片,以FS6500为SBC,DaVinciConfigurato...

关键字: SAR 看门狗

本文主要介绍AUTOSAR架构下的WdgDriverWdgIfWdgM模块,分析模块之间的依赖关系以及运行原理以帮助快速理解。本文以MPC5746R为主控芯片,以FS6500为SBC,DaVinciConfigurato...

关键字: SAR 看门狗

这是一篇旧文,技术交流群有人在讨论这个问题,今天就来分享一下。 我

关键字: STM32 FreeRTOS 看门狗

当下,一边汽车自动化驾驶的发展势头节节攀高,一边频频出现各类痛心的质量事故。

关键字: 看门狗 自动化驾驶 安全性

  本文根据网络视频采集的需要,将网络传输与视频采集相结合,设计了以S3C2440为核心的USB摄像头视频采集和嵌入式Linux系统下的视频服务器,从而实现了远程网络视频信息采集。   

关键字: s3c2440 视频采集 usb摄像头
关闭
关闭