S5PV210 看门狗定时和复位
第一节 S5PV210的看门狗定时器
S5PV210上的看门狗定时器相当于一个普通的16bit的定时器,它与PWM定时器的区别是看门狗定时器可以产生reset信号而PWM定时器不能,S5PV210看门狗定时器的结构图如下:

第二节 程序相关讲解
完整代码见目录见详细代码下载链接。
1. main.c
共4个步骤:
第一步 初始化串口;
第二步 中断相关初始化;
第三步 测试看门狗,调用函数wtd_test(),其定义位于wtd.c中;
第四步 死循环,等待看门狗中断的发生;
2. wtd.c
wtd_test()的内容包括4个步骤:
第一步 VIC相关的中断设置,包括设置WTD中断的处理函数为isr_wtd()和使能中断;
第二步 测试看门狗定时的功能,调用了函数wtd_operate(),这里我们只是使能了看门狗定时器的定时功能,而并没有使能reset功能;
wtd_operate()的完整代码如下:
void wtd_operate(unsigned long uenreset, unsigned long uenint, unsigned long uselectclk, unsigned long uenwtd, unsigned long uprescaler,unsigned long uwtdat, unsigned long uwtcnt)
{
WTDAT = uwtdat;
WTCNT = uwtcnt;
/*uenreset: 是否使能reset *uenint: 是否使能中断 *uselectclk: 分频系数 *uenwtd:是否启动定时器 *bit[8:15]:预分频系数 */
WTCON= (uenreset<<0)|(uenint<<2)|(uselectclk<<3)|(uenwtd<<5)|((uprescaler)<<8);
}
首先设置计数相关的寄存器WTDAT和WTCNT,寄存器WTDAT用来决定看门狗定时器的超时周期,在看门狗定时器启动后,寄存器WTDAT的值会自动传入寄存器WTCNT,当WTCNT计数达到0时:如果中断被使能的话会发出中断,如果reset功能被使用的话会发出复位信号,然后装载WTDAT的值并重新计数。

寄存器WTCON进行相关配置,用来决定是否使能reset、是否使能中断、分频、是否启动定时器等,具体见下图:

最后再来看看看门狗中断的处理函数,代码如下:
void isr_wtd()
{
//记录中断发生次数
static int wtdcounter=0;
printf("%d\r\n",++wtdcounter);
// 看门狗相关中断清除
WTCLRINT = 1;
// VIC相关中断清除
intc_clearvectaddr();
if(wtdcounter==5)
{
// 看门狗reset printf("waiting system reset\r\n");
wtd_operate(1,1,0,1,100,100000000,100000000);
}
}
共3个步骤:
第一步 打印中断发生的次数;
第二步 中断清除;
第三步 当发生了5次定时中断后,使能看门狗的reset功能,此时系统会重启;
第三节 实验现象
首先会打印1、2、3、4...,当打印5时,watchdog的reset功能被使能,系统会重启,说明看门狗的复位作用生效了。
详细代码下载链接:http://download.csdn.net/detail/klcf0220/5741763
S5PV210 看门狗定时和复位的更多相关文章
- mini2440裸机试炼之——看门狗中断和复位操作
看门狗的工作原理: 设本系统程序完整执行一周期的时间是Tp,看门狗的定时周期为Ti,Ti>Tp,在程序正常执行时,定时器就不会溢出,若因为干扰等原因使系统不能在Tp时刻改动定时器的记数值,定时器 ...
- MSP430常见问题之看门狗及定时器类
Q1. 定时器两个中断TAIE 和CCIE,有什么区别?两个中断的中断向量一样吗?A1:TAIE 和CCIE指的是不同事件.TAIE指TAR 计数器溢出,从65535 到0 的变化,由TAIFG 引起 ...
- STM32之------独立看门狗(IWDG)和窗体看门狗(WWDG)
一 前沿废语: 之前有很风靡的游戏,名字叫<看门狗>.该游戏用了很新的引擎技术,打造出了一个辽阔庞大的世界,内容是玩家Aiden·Pearce(主角)是一名精通黑客技术的高手,当时 ...
- S3C2440看门狗解析
个PCLK周期的复位信号 也就是说,在某些环境下,看门狗可以当做定时器使用,当他中断的时候并不发生复位,只发生中断,我看看图 看门狗的中断和复位信号是可以依靠wtcon来切断的(看门狗的时钟是无法切断 ...
- at91 看门狗
看 门狗的驱动一般来说比较简单,只要做寄存器的设置实现开启.关闭.喂狗功能.本项目中我们使用的是at91sam9g45处理器,带有看门狗定时器.这个 看门狗的驱动却比较复杂,应用层想用它的话,将涉及到 ...
- zigbee学习之路(十一):看门狗
一.前言 今天,我们要通过实验学习和认识一下看门狗的使用,看门狗是为了防止防止程序跑飞的,通过不断的喂狗,使看门狗能持续监管程序的运行状态,当程序跑飞时,能及时把程序拽回来. 二.原理与分析 在CPU ...
- stm32 看门狗配置
1.独立看门狗: 1) 取消寄存器写保护(向 IWDG_KR 写入 0X5555) IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //使能或者失能 2) ...
- 窗口看门狗 WWDG
一,窗口看门狗 二,喂狗注意事项 三,程序设计 1.检查复位状态,有助于观察当前工作的可靠性 /* Check if the system has resumed from WWDG reset ,检 ...
- 痞子衡嵌入式:聊聊系统看门狗WDOG1在i.MXRT1xxx系统启动中的应用及影响
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是系统看门狗WDOG1在i.MXRT1xxx系统启动中的应用及影响. 软件看门狗模块(WDOG)在 MCU 应用里可以说是非常基础的功能模 ...
随机推荐
- JAVA8给我带了什么——流(入门)
JAVA8有一个新功能——流.笔者简单的看一下流.然后默默的闭上眼睛.感叹一声:这不是.NET里面的Linq吗?如果你们当中有谁做过.NET程序员的话,对于流的学习其实帮助是很大的.但是要明白你现在是 ...
- Prometheus+grafana搭建
一.简介 1.1 Prometheus Prometheus是一套开源的监控系统,它将所有信息都存储为时间序列数据:因此实现一种Profiling监控方式,实时分析系统运行的状态.执行时间.调用次数等 ...
- 函数和常用模块【day04】:高阶函数(七)
本节内容 1.介绍 2.具体实用 3.eval()函数 一.介绍 高阶函数:变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数. 二.具体实用 其实说白了,高阶函数功能就 ...
- javascript 字符串的连接和截取
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- $使用dom4j可解析 返回&#x等字样的 html转义字符【转】
如果以GET或POST请求某个系统返回,带有 $#x 那很有可能是axis服务器返回的. <?xml version="1.0" encoding="UTF-8&q ...
- go break label goto label contiue lable
func main() { var i int fmt.Scanf("%d", &i) fmt.Println(i) if i%3 == 0 { goto LABLE1 } ...
- 谈谈你对MVC的理解
MVC 模式 MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式.这种模式用于应用程序的分层开发. Model(模型) - 模型代表一个存取数据的对象或 JAVA ...
- Dubbo协议
参考dubbo官方文档http://dubbo.apache.org/zh-cn/docs/user/references/protocol/dubbo.html dubbo共支持如下几种通信协议: ...
- Docker 入门 第四部分: Swarms
目录 Docker 入门 第四部分: Swarms 先决条件 介绍 理解Swarm集群 部署swarm 创建一个集群 在swarm集群上部署你的app应用 为 swarm管理器配置一个docker-m ...
- 10-SQL Server 2008 R2安装步骤
一. 软件和环境 1. 软件 : SQL Server 2008 R2 企业版 软件下载地址:XXXX 2. 环境要求: .Net FrameWork 3.5 以上 (windows 7 ...