看门狗实质上和其他的定时器功能相似,只是看门狗多了一个时间到就复位的功能,只要将WTCON的【0】设置成0就成了普通的中断,将进入中断处理程序中,如果设置成了1将复位。这样的话,我们可以使用看门狗来实现对程序的监视,定时的去喂狗也就是定时去给WTCNT复制,如果程序跑飞了话就不能定时去喂狗,系统将重启。
下面的程序中我使用了一个中断处理函数,中断处理程序中使蜂窝器响一下,如果开启了喂狗程序的话不会引发中断,
下面是测试程序:(特别注意延时的时间,否则不能正常工作)
#include "watchdog.h"
#include "def.h"
#include "2440addr.h"
#include "uart.h"
void __irq watchdog_isr(void)
{
uart_printf("Enter interrupt!/n");
Beep(2000, 100);
//清中断标志位
rSRCPND = 0x1<<9;
rSUBSRCPND = 0x1<<13;
rINTPND = 0x1<<9;
}
void watchdog_test()
{
// freq=PCLK / (Prescaler value + 1) / Division_factor
prescaler =249 division factor = 16 freq = 12.5kHZ 如果[0]为1,但中断发生时将引起复位,
//这里设置成了普通的中断,中断发生时会进入中断处理程序
rWTCON = (249<<8) | (0<<3) |(0); //
rWTDAT = 50000; //看门狗计数4秒(4/(1/12500)
rWTCNT = 50000; //这两个值必须初始化
rWTCON |=(1<<5) |(1<<2); //开看门狗中断
rSRCPND = 1<<9;
rSUBSRCPND =1<<13;
rINTPND =1<<9;
rINTSUBMSK = ~(1<<13); //开中断子屏蔽
rINTMSK =~(1<<9);
pISR_WDT_AC97 = (U32)watchdog_isr; //安装中断处理句柄
Delay(1000);
while(1)
{
Delay(1000);
// rWTCNT = 50000; //喂狗,重新赋值,防止中断,果
//把这条语句打开的话,将进行喂狗,不会进入中断
Delay(1000);
}
}
上一篇:八 s3c2440 linux 触摸屏 驱动代分析
下一篇:S3C2440裸机实验(6) ----NAND FLASH
推荐阅读最新更新时间:2024-11-17 23:16
设计资源 培训 开发板 精华推荐
- 使用 ROHM Semiconductor 的 BD46482 的参考设计
- 基于STTS75的温度探针套件
- NCP81239REFGEVB:USB 供电 4 开关降压升压控制器评估板
- RE46C117 DC-DC转换器和压电喇叭驱动器的典型应用
- DER-845 - 使用 900 V LinkSwitch-TN2 的 4.8 W 非隔离降压转换器
- 基于STIPNS1M50T-H SLLIMM™-纳米SMD IPM MOSFET的60 W电机控制电源板
- EVAL-AD1953EB,家庭影院 24 位音频处理器 AD1953 评估板
- AM1S-1215SH30Z 1W DC-DC转换器典型应用
- 功耗优化型 77GHz 液位变送器参考设计
- SPX2941 1A 低压降稳压器的典型应用
- 睿瀚医疗万斌:“脑机接口+AI+机器人”是康复赛道的未来
- 希润医疗孟铭强:手功能软体机器人,让脑卒中患者重获新生
- 柔灵科技陈涵:将小型、柔性的脑机接口睡眠设备,做到千家万户
- 微灵医疗李骁健:脑机接口技术正在开启意识与AI融合的新纪元
- USB Type-C® 和 USB Power Delivery:专为扩展功率范围和电池供电型系统而设计
- 景昱医疗耿东:脑机接口DBS治疗技术已实现国产替代
- 首都医科大学王长明:针对癫痫的数字疗法已进入使用阶段
- 非常见问题解答第223期:如何在没有软启动方程的情况下测量和确定软启动时序?
- 兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书
- 新型IsoVu™ 隔离电流探头:为电流测量带来全新维度