stm8的独立看门狗与窗口看门狗
STM8拥有两个硬件看门狗,分别叫做独立看门狗和窗口看门狗
独立看门狗的框图如下
我们可以看到,独立看门狗的时钟来自于LSI内部低速振荡器,经过二分频到达看门狗外设单元,在经过一个七位的预分频到达计数器,这个七位的分频由PR控制,看门狗内部使用一个八位的向下计数计数器来计数,计数到0的时候发出看门狗复位信号,同时有一个RLR可以存放看门狗的初始化值,但对KR操作的时候看门狗计数器重载RLR的数据,达到喂狗目的
所以,对看门狗的处理应该分为以下步骤
1. 关闭看门狗
2. 启动LSI系统低速时钟
3. 设置时钟的分频系数
4. 设置看门狗重载的值
5. 在没有复位之前喂狗,重新计数
相关寄存器如下
使用方法见以下代码
#ifndef __IWDG_H_
#define __IWDG_H_
#include "stm8s.h" void IWDGInit(void);//默认计数时间一s void IWDGFeed(void); #endif
#include "iwdg.h" void IWDGInit(void) //默认计数时间一分钟
{
//首先打开LSI时钟
CLK->ICKR |= (1<<3);
while((CLK->ICKR&(1<<4)) == 0);//等待时钟稳定
IWDG->KR = 0x55;//写入解锁
IWDG->PR = 0x06;//分频64K /256 = 250
IWDG->RLR = 250;//计数值250 1复位
IWDG->KR = 0xaa;//锁定并刷新分频器
IWDG->KR = 0xcc;//启动独立看门狗 } void IWDGFeed(void)
{
IWDG->KR = 0xaa;//锁定并刷新分频器
}
窗口看门狗这是另一种模式,芯片定义了一个下线,低于0x40的时候产生复位,同时定义了一个上限,高于上限的时候喂狗同样产生复位
窗口看门狗的时钟来自于cpu时钟,分频数为12288,使用看门狗过程如下
1设置窗口值
2设置当前计数值
3启动看门狗
窗口看门狗一旦启动无法关闭,除非发生复位系统自动关闭,具体使用查看代码
#ifndef __WWDG_H_
#define __WWDG_H_
#include "stm8s.h" void WWDGInit(void); void WWDGFeed(void); #endif
#include "wwdg.h" void WWDGInit(void)
{
if((WWDG->CR&0x80) == 1)
{
return;
}
else
{
WWDG->WR = 0x60;
WWDG->CR = 0xff;
}
} void WWDGFeed(void)
{
u8 windows = WWDG->WR ;
if((WWDG->CR&0x7f)>=windows)
return;
else
WWDG->CR |= 0x7f;
}
stm8的独立看门狗与窗口看门狗的更多相关文章
- STM32之独立看门狗与窗口看门狗总结
一.独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效. 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路 ...
- STM8S103之独立看门狗和窗口看门狗
独立看门狗时钟来源为LSI:窗口看门狗时钟来源为CPU: 窗口看门狗窗口的含义是:喂狗必须在一定的窗口期内完成,不能过早也不能过晚. 总结:防止程序复位,用独立看门狗. 独立看门狗使用的流程:参见库函 ...
- STM32之独立看门狗(IWDG)与窗口看门狗(WWDG)总结
一.独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效. 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路 ...
- STM32窗口看门狗和独立看门狗的区别,看门狗介绍及代码演示
一.介绍: STM32看门狗分为独立看门狗和窗口看门狗两种,其两者使用调条件如下所示, IWDG和WWDG两者特点如下图所示: 独立看门狗的手册资料: 窗口看门狗的手册资料: ...
- 嵌入式02 STM32 实验09 独立/窗口看门狗
一.独立看门狗和窗口看门狗 看门狗:单片机系统在外界的干扰下会出现程序跑飞的现象导致死循环,或者崩溃,看门狗电路就是为了避免这种情况的发生,看门狗的作用就是在一定的事件内(通过计数器实现)若没有收到喂 ...
- 第35章 WWDG—窗口看门狗—零死角玩转STM32-F429系列
第35章 WWDG—窗口看门狗 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...
- STM32(10)——窗口看门狗
简介: 窗口看门狗(WWDG)通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障.除非递减计数器的值在 T6 位 (WWDG->CR 的第六位)变成 0 ...
- STM8s窗口看门狗
看看窗口看门狗的框图 从图里看出产生复位信号有2个方式: 1 WDGCR寄存器的T6 由1变0,也就是从此寄存器的值从0x40变成0x3F会产生复位信号: 2 当寄存器WDGCR的值大于WDGWR的时 ...
- stm32 窗口看门狗学习(一)
什么是窗口看门狗? 1)独立看门狗 限制喂狗时间在0-x内,x由相关寄存器决定.喂狗的时间不能过晚. 2)窗口看门狗 之所以称为窗口就是因为其 ...
随机推荐
- Swift 常用字符串操作
原文链接:http://www.jianshu.com/p/52e7580166ff 版本2:增加了Swift 2.0的语法,与Swift 1.2的语法相比,主要是:advance方法变成了advan ...
- android-misc-widgets四向(上下左右)抽屉bug修复版--转载
android-misc-widgets四向(上下左右)抽屉bug修复版 2013-08-04 08:58:13 标签:bug down top panel slidingdrawer 原创作品,允 ...
- webservice接口调用存储过程返回失败
poka.cashman.timer.service.impl.PdaOperateServiceImpl - Method Name: cashBoxOutOrIn; cbInfo:JN002015 ...
- android 代码动态创建视图
LinearLayout 如何动态设置 margin? LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayou ...
- 常见的http状态码
[200]请求已成功,请求所希望的响应头或数据体将随此响应返回. [301]被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一.如果可能,拥有连结编辑功能 ...
- Python CGI编程和CGIHTTPServer
Python2.7 的CGIHTTPServer 可以作为一个简单的HTTP服务器,能够调用cgi脚本 1 在任意目录下创建一个特殊的目录 cgi-bin ,用于存放自己写的脚本(.py或.cgi) ...
- java邮件收发
http://blog.csdn.net/ycg01/article/details/1394465 java邮件收发 标签: javaimportexceptionnulluserclass 200 ...
- hdu_5213_Lucky(莫队算法+容斥定理)
题目连接:hdu_5213_Lucky 题意:给你n个数,一个K,m个询问,每个询问有l1,r1,l2,r2两个区间,让你选取两个数x,y,x,y的位置为xi,yi,满足l1<=xi<=r ...
- hdu_5145_NPY and girls(莫队算法+组合)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5145 题意:给你n,m,共有n个女孩,标号为1—n,n个数xi表示第ith个女孩在第xi个教室,然后下 ...
- JSP标准标签库(JSTL)--SQL标签库 sql
了解即可.SQL标签库 No. 功能分类 标签名称 描述 1 数据源标签 <sql:setDataSource> 设置要使用的数据源名称 2 数据库操作标签 <sql:query&g ...