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 应用里可以说是非常基础的功能模 ...
随机推荐
- checkbox用图片替换原始样式,并实现同样的功能
1.结构: <div class="box1"> <input/> <div class="box2"> <img / ...
- shell中使用>/dev/null 2>&1 丢弃信息
在一些Shell脚本中,特别是Crontab的脚本中,经常会看到 >/dev/null 2>&1这样的写法. 其实这个很好理解.我们分两部分解释. 1. >/dev/nul ...
- Linux重启服务器步骤
- java抽象类与接口回顾
1.抽象类中可以包括成员变量,方法,构造器,初始化块,内部类(接口/枚举)五种成分.2.让A类中包含B方法,又不提供B方法的实现,即抽象方法只有方法签名,没有方法体.3.有抽象方法的类只能被定义成抽象 ...
- A + B,末k位不相同
题目描述 读入两个小于10000的正整数A和B,计算A+B.需要注意的是:如果A和B的末尾K(不超过8)位数字相同,请直接输出-1. 输入描述: 测试输入包含若干测试用例,每个测试用例占一行,格式为& ...
- Keil5下载STM32库
1.http://www.keil.com/dd2 2.3.以STM32L051C8为例 下载即可.
- vue自学入门-2(vue创建项目)
本人也是刚学习VUE,边找资料,边学习,边给大家分享.1.创建项目 2.启动项目 3.注意上面和下面全部用cnpm
- IntelliJ IDEA AndroidStudio SVN无法使用
1.Cann't Run Program "SVN" 把勾都去掉,结果没有任何反应.2.重新安装TotoriseSVN,设置Svn.exe路径,主要不要勾选Enable Inter ...
- Wannafly挑战赛21 E 未来城市规划
传送门 题目中给的信息很难直接维护,但是可以考虑一条边对答案的贡献 在以\(x\)为根的子树里,如果一条边\(i\)的权值为\(w_i\),这条边深度更深的端点为\(to_i\),那么这条边对这个子树 ...
- POJ1258 Agri-Net【最小生成树】
题意: 有n个农场,已知这n个农场都互相相通,有一定的距离,现在每个农场需要装光纤,问怎么安装光纤能将所有农场都连通起来,并且要使光纤距离最小,输出安装光纤的总距离. 思路: 又是一个最小生成树,因为 ...