STM8S awu及看门狗IWDG WWDG应用

发布者:乡村乐园最新更新时间:2017-02-07 来源: eefocus关键字:STM8S  awu  看门狗  IWDG  WWDG 手机看文章 扫描二维码
随时随地手机看文章

AWU的应用(用库函数完成的)

//切记要开启中断 且在中断函数中 AWU_GetFlagStatus(); 来清除中断


void AWU_SET(void)

{

    CLK_PeripheralClockConfig(CLK_PERIPHERAL_AWU, ENABLE);

    AWU_Init(AWU_TIMEBASE_12S);

}


#ifdef _COSMIC_

@far @interrupt void AWU_IRQHandler(void)

#else

void AWU_IRQHandler(void) interrupt 1

#endif  

{

    AWU_GetFlagStatus(); 

}

 


IWDG应用(直接操作寄存器完成的) 


在需要清狗的地方调用WDT_CLR()即可


void WDT_CLR(void )

{

    IWDG->KR = IWDG_KEY_REFRESH;

}


void START_WDT(void )

{

    IWDG->KR =0X55;//打开保护

    IWDG->PR = IWDG_Prescaler_256;// 28Khz 256分频 

    IWDG->RLR = 254;//重载寄存器设定 每当喂狗时 此值就会重载

    IWDG->KR = IWDG_KEY_REFRESH;//先喂一次

    IWDG->KR = IWDG_KEY_ENABLE;//启动看门狗

}



WWDG应用


WWDG-CR是向下的计数器,数到0x40就会复位,窗口的上限可以任你设,最大7F,如果设成7F,几乎就成了没有窗口的看门狗了。 


窗口的意思是假如你设是0x60,那么只有在0X60-0X40间可以喂狗,其它时间喂,狗就会复位你的单片机,所以喂狗前要先判断狗饿否。


typedef unsigned char     uint8_t;


void WWDG_Init(uint8_t Counter, uint8_t WindowValue)

{

     //assert_param(IS_WWDG_WINDOWLIMITVALUE_OK(WindowValue));    


    WWDG->WR = WWDG_WR_RESET_VALUE;


    WWDG->CR = (uint8_t)((uint8_t)(WWDG_CR_WDGA | WWDG_CR_T6) |  (uint8_t)Counter);


    WWDG->WR = (uint8_t)((uint8_t)(~WWDG_CR_WDGA) & (uint8_t)(WWDG_CR_T6 | WindowValue));


}



#define BIT_MASK          ((uint8_t)0x7F)

void WWDG_SetCounter(uint8_t Counter)

{

    WWDG->CR = (uint8_t)(Counter & (uint8_t)BIT_MASK);

}



#define window_max 0x60


#define wwdg_reset 0x70


void WWDG_CLR(void)

{//狗饿否

     if ((WWDG->CR)&0x7f)< window_max)WWDG_SetCounter(wwdg_reset)  ;

}



main()

{

    WWDG_Init(wwdg_reset,window_max );


    while(1)

    {

        WWDG_CLR

    }

}



关键字:STM8S  awu  看门狗  IWDG  WWDG 引用地址:STM8S awu及看门狗IWDG WWDG应用

上一篇:使用STM8SF103 ADC采样电压
下一篇:STM8S低功耗处理

推荐阅读最新更新时间:2024-03-16 15:32

STM32独立看门狗:你看狗都独立了
参考GIT: STM32--软看门口--不需要任何硬件支持--它在IC里面已经集成了。(算是独立看门狗的误解吧) 一个倒计数,减减减减减减,减到0就会触发一个系统复位信号也就是单片机重启了。 喂狗呢?就是隔一段时间就给这个倒计数重现装载数据,保持它不要到0. 头文件: #ifndef _WDG_H_ #define _WDG_H_ void watch_dog_init(void); void feed_dog(void); #endif 实现: #include stm32f10x_iwdg.h #include wdg.h void watch_dog_init(void) { IW
[单片机]
EM78系列单片机在红外遥控系统中的应用
1 EM78P447S的主要特点   EM78系列单片机是台湾义隆电子股份有限公司采用CMOS工艺制造的8位高性价比单片机。该系列单片机一般都内置看门狗计数器(WDT)、RAM、ROM、可编程定时/计数器、预分频器以及5层堆栈。该系列器件的绝大部分指令只需两个振荡周期,同时具有内外部中断、低电压检测复位、可编程I/0、内部上拉电阻和集电极开路输出、SLEEP方式等功能。另外,EM78P447S单片机还具有编程简单、速度快、功耗小、成本低等优点,能广泛应用于玩具、家电、工业控制等方面。   EM78P447S的主要性能特点如下: ●工作电压范围:2.5-5.5V; ●允许温度范围:0-70°C; ●工作频率范围: 石英振
[应用]
MSP430(G2553)用看门狗定时器来产生周期信号
#include msp430g2553.h #include intrinsics.h volatile unsigned int i = 0; // 中断服务子程序中所用到的全局变量, 最好定义成 volatile 型, 具体原因和用法可以参考我的其他博文介绍 void main (void) { WDTCTL = WDT_MDLY_0_5; // 周期 0.5ms, 设置可参考下面头文件中的截段 IE1 |= WDTIE; // 使能WDT中断 P2DIR |= BIT2; // P2.2输出 _EINT(); // 使能全局中断 for (;;) {
[单片机]
恩智浦 飞思卡尔Freescale Kinetis KEA128学习笔记3——看门狗
KEA128是M0内核的ARM单片机,只有一个看门狗,不像其他ARM单片机,可能有多个看门狗,如STM32F103系列就有2个看门狗,KEA128只有一个,单可配置成两种模式,即独立看门狗模式或窗口模式。 在使用看门狗时,系统上电后对WDOG_CS1、WDOG_CS2,WDOG_TOVAL只能写一次,之后再写就无效了,除非在需要重新写的寄存器之前加上那个解锁序列:WDOG- CNT = 0x20C5,WDOG- CNT = 0x28D9. 所以在对这些寄存器进行写操作时,最好一次性写完。 //==================================================================
[单片机]
恩智浦 飞思卡尔Freescale Kinetis KEA128学习笔记3——<font color='red'>看门狗</font>
STM8SAWU低功耗模式
/** ********************************** STM8S *********************************** * @文件名 : bsp_awu.c * @作者 : strongerHuang * @库版本 : V2.2.0 * @文件版本 : V1.0.0 * @日期 : 2017年05月10日 * @摘要 : 自动唤醒源文件 ******************************************************************************/ /*-----------------------
[单片机]
stm32独立看门狗和窗口看门狗的区别和联系
STM32有2个看门狗:独立看门狗和窗口看门狗。 独立看门狗IWDG:独立于系统之外,因为有独立时钟,所以不受系统影响的系统故障探测器,主要用于监视硬件错误。 窗口看门狗WWDG:系统内部的故障探测器,时钟与系统相同。如果系统时钟不走了,这个狗也就失去了作用了,主要用于监视软件错误。 简单的讲,看门狗就是检测系统故障的,如果因为系统故障而没有及时喂狗,则引发复位重启。 对于一般的独立看门狗,程序可以在它产生复位前的任意时刻刷新看门狗,但是这样有一个隐患,有可能程序跑乱了又跑回正常的地方,或者跑乱的程序正好执行了刷新看门狗操作,这样的情况下一按的看门狗就检测不出来故障了;但是如果使用窗口看门狗,程序员可以根据程序正常执行的时间设置刷
[单片机]
STM8S_006_AWU自动唤醒
Ⅰ、写在前面 在某些低功耗的设备中,需要设备进入低功耗,且又需要间隔一定时间唤醒MCU,就需要有这么一个“AWU自动唤醒”定时自动唤醒的功能。 在STM32中实现上面功能,常见的操作就是使用RTC来实现。但RTC每次进入低功耗之前都需要配置一下RTC,而STM8独特的AWU功能只需要简单的初始化配置即可。 为方便大家阅读,本文内容已经整理成PDF文件: http://pan.baidu.com/s/1i5uWhJR 作者:strongerHuang 版权所有,未经允许,禁止用于其它商业用途!!! Ⅱ、AWU基础知识 AWU:AutoWakeUp,即自动唤醒 AWU是用来当MCU进入低功耗的活跃停机(Acti
[单片机]
关于STM8S使用硬件SPI收发问题
在调试STM8S的SPI时候,由于在学习板上飞线,然后发现每次读SPI FLASH的设备ID等都是不对的. 在21IC发帖求救http://bbs.21ic.com/forum.php?mod=viewthread&tid=788880&epclose=1 总体来说是怀疑硬件飞线的干扰.于是今天又飞了一块板子,发现仍然有这样的问题. 好吧,真的只能打板了. 自己想想会不会在读取数据前SPI的硬件BUFFER中就存在有数据啊. 嗯,有可能, 于是在读数据前,先将SPI的数据先读出,清空缓存,具体代码如下 /* --Common functions */ /* * Function: Wait_
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved