新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 我的独立看门狗总结

我的独立看门狗总结

作者:时间:2013-04-10来源:网络收藏

一、概述

1.)看门狗设备(和窗口看门狗)可用来检测和解决由引起的故障;当计数器达到给定的超时值时,触发一个中断或产生系统复位。

2.)功能图:(由于本人无法贴图,请见参考手册,125页)

3.)()由专用的40kHz 的低速时钟为驱动;因此,即使主时钟发生故障它也仍然有效。

4.)其中_PR为预分频器寄存器,IWDG_RLR为重新加载计数器寄存器,IWDG_KR为控制器存器。IWDG_SR为状态寄存器。(见图)

5.)IWDG_KR写入OXCCCC,启动独立看门狗功能,计数器值开始递减,减到0时,看门狗复位。IWDG_KR写入0XAAAA,计数器值被重新加载,即避免看门狗复位。IWDG_KR写入0X5555,则允许写IWDG_PR 和IWDG_RLR寄存器写操作。写入其它值,IWDG_PR 和IWDG_RLR被保护,数据将无法写入这两个寄存器。IWDG_SR状态寄存器指示预分频值和递减计数器是否正在被更新。IWDG_RLR寄存器范围为0-0xfff.

6.)如果用户在选择字节中启用了“硬件看门狗“功能,在系统上电复位后,看门狗会自动开始运行;如果在计数器计数结束前,若软件没有向键寄存器写入相应的值,则系统会产生复位。

7。)看门狗复位时,系统复位,程序重新开始运行。

二、实验功能

为了实现IWDG复位功能,本人做了一个实验:

采用优易特电子的EDU开发板,功能如下:

系统上电,蜂鸣器延时叫一声,之后关闭。IWDG 40K的内部低速时钟进行8分频产生5KHZ的看门狗计数时钟,RLR设为2500,即看门狗复位时间设为500MS。LD1灯亮,表示看门狗初始化完毕。开启看门狗功能。定时器3定为200MS定时器,在每次定时器中断中,将看门狗计数器重新加载,当加载到25(5S)次以后,不再加载看门狗。这样,看门狗会在后面的时间发生复位,从而系统重新运行。检查蜂鸣器是否每约5S叫一声,如果这样表示IWDG发生了复位。功能检验完成。

经实验证明,以上功能均正确。

三、程序如下

main()

{

u32 temp;

RCC_init();

Gpio_int();

GPIO_ResetBits(GPIOC,GPIO_Pin_6);//蜂鸣器叫一声关闭

for(temp=0;temp200000;temp++);

GPIO_SetBits(GPIOC,GPIO_Pin_6);

IWDG_init();

GPIO_SetBits(GPIOF,GPIO_Pin_6);//LD1灯亮

Timer_init();

NVIC_init();

while(1);

}

……………………………………………………………………….

void IWDG_init(void)

{

/* Enable write access to IWDG_PR and IWDG_RLR registers */

IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);

/* IWDG counter clock: 40KHz(LSI) / 8 = 5 KHz */

IWDG_SetPrescaler(IWDG_Prescaler_8);

/* Set counter reload value to 2499,500ms */

IWDG_SetReload(2499);

/* Reload IWDG counter */

IWDG_ReloadCounter();

/* Enable IWDG (the LSI oscillator will be enabled by hardware) */

IWDG_Enable();

}

void NVIC_init(void)

{

NVIC_InitTypeDef NVIC_InitStructure;

#ifdef VECT_TAB_RAM

分频器相关文章:分频器原理
尘埃粒子计数器相关文章:尘埃粒子计数器原理
蜂鸣器相关文章:蜂鸣器原理

上一页 1 2 下一页

评论


技术专区

关闭