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)窗口看门狗 之所以称为窗口就是因为其 ...
随机推荐
- webservice(soap)接口的加密,SHA-1实现
import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security. ...
- db2导入表结构和表数据
http://www.cnblogs.com/kfarvid/archive/2010/12/15/1906776.html db2的博文 -bash-3.2$ db2 connect to ca ...
- [转]Linux下CodeBlocks的交叉编译
原文链接:http://blog.sina.com.cn/s/blog_602f87700100kujh.html Sam一直是Makefile流,这些天需要移植一些游戏引擎模块.这些模块在其它嵌入式 ...
- js List<Map> 将偏平化的数组转为树状结构并排序
数据格式: [ { "id":"d3e8a9d6-e4c6-4dd8-a94f-07733d3c1b59", "parentId":&quo ...
- JavaScript 面向对象(一)
参考:http://www.iteye.com/topic/1123555
- Intergate flot with Angular js ——Angular 图形报表
下面这篇文章最终的结论就是 Flot 插件 结合 Angular 的Directive 来处理 图表的绘制 给出github上的一个demo源码.https://gist.github.com/fly ...
- Hibernate配置过程可能发生的问题及解决方法
1.问题:Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/DocumentExceptio ...
- 文本属性Attributes 初步
转载自:http://www.cnblogs.com/qingche/p/3574995.html 1.NSKernAttributeName: @10 调整字句 kerning 字句调整 2.NSF ...
- Eclipse中常用的操作单词
Existing Project into Workspace 现有的工程引入工作空间(加载工程)File 文件New 新建Project 工程Folder 文件夹Import 引入(加载&导 ...
- 根据浏览器UA信息进行跳转(移动和pc)
如何用php判断一个客户端是手机还是电脑?其实很简单,开发人员都知道,通过浏览器访问网站时,浏览器都会向服务器发送UA,即User Agent(用户代理).不同浏览器.同一浏览器的不同版本.手机浏览器 ...