GD32F450---独立看门狗

2023-10-20 12:04
文章标签 看门狗 独立 gd32f450

本文主要是介绍GD32F450---独立看门狗,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一:简介

        看门狗(Watchdog)是一种计算机硬件或软件的监控机制,主要作用是监测系统的运行状态,并在系统出现异常或故障时采取相应措施,以保证系统的稳定性和可靠性。

        具体来说,看门狗的工作原理是,在系统运行以后启动看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。硬件看门狗是利用定时器来监控主程序的运行,在主程序的运行过程中,要在定时时间到之前对定时器进行复位,如果出现死循环,或者说PC指针不能回来,这时看门狗就会介入,采取相应的措施保证系统的稳定性和可靠性。

        以下介绍的是GD32F4的独立看门狗定时器的使用:

1.独立时钟源:        独立看门狗定时器(FWDGT )有独立时钟源( IRC32K )。即使主时钟失效, FWDGT 依然能
保持正常工作状态,适用于需要独立环境且对计时精度要求不高的场合。
2. 独立看门狗定时器带有一个 8 级预分频器,可以对输入时钟(IRC32K),进行预分频,降低时钟频率,延长最大允许喂狗时间。
3. 12位向下定时器:         独立运行的12位向下计数器,当内部向下计数器的计数值达到0 ,独立看门狗会产生一个系统复位。

一:库函数接口

1.看门狗读写保护

/* enable write access to FWDGT_PSC and FWDGT_RLD */
void fwdgt_write_enable(void);
/* disable write access to FWDGT_PSC and FWDGT_RLD */
void fwdgt_write_disable(void);

2.看门狗使能

/* start the free watchdog timer counter */
void fwdgt_enable(void);

3.独立看么狗参数配置

        1)时钟预分频

/* configure the free watchdog timer counter prescaler value */
ErrStatus fwdgt_prescaler_value_config(uint16_t prescaler_value);

        2)重装值设置

/* configure the free watchdog timer counter reload value */
ErrStatus fwdgt_reload_value_config(uint16_t reload_value);

        等效总接口:

/* configure counter reload value, and prescaler divider value */
ErrStatus fwdgt_config(uint16_t reload_value, uint8_t prescaler_div);

4.喂狗,重装看门狗定时器

/* get flag state of FWDGT */
FlagStatus fwdgt_flag_get(uint16_t flag);

5.标志位查询

/* get flag state of FWDGT */
FlagStatus fwdgt_flag_get(uint16_t flag);

二:应用示例

1.初始化

void model_FWDGT_Init(void)
{uint16_t timeout_t=0xFFFFU;/* enable IRC40K */rcu_osci_on(RCU_IRC40K);/* wait till IRC40K is ready */while(SUCCESS != rcu_osci_stab_wait(RCU_IRC40K)){if(timeout_t > 0) timeout_t--;else			  break;}/* configure FWDGT counter clock: 40KHz(IRC40K) / 64 = 0.625 KHz */fwdgt_config(2*500,FWDGT_PSC_DIV64);				//t = (1/0.625)x(2x500) = 1.6sfwdgt_write_disable();/* After 1.6 seconds to generate a reset */fwdgt_enable();
}

2.重装喂狗函数

void model_fwdgt_reload(void)
{/* uncock fwdgt write protect*/fwdgt_write_enable();/* feed fwdgt */fwdgt_counter_reload();	
}

3.人为溢出

	/* 某种条件触发 */if(something){/* 重新配置看门狗计数值 */fwdgt_write_enable();				/* configure FWDGT counter clock: 40KHz(IRC40K) / 64 = 0.625 KHz */fwdgt_config(5,FWDGT_PSC_DIV64);				//t = (1/0.625)x(5) = 8ms				fwdgt_counter_reload();			fwdgt_enable();}

程序应用:

int main(void)
{	FWDGT_Init();while(1){task_fwdgt_reload();}
}

这篇关于GD32F450---独立看门狗的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/246982

相关文章

poj 2594 二分图最大独立集

题意: 求一张图的最大独立集,这题不同的地方在于,间接相邻的点也可以有一条边,所以用floyd来把间接相邻的边也连起来。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <sta

poj 3692 二分图最大独立集

题意: 幼儿园里,有G个女生和B个男生。 他们中间有女生和女生认识,男生男生认识,也有男生和女生认识的。 现在要选出一些人,使得这里面的人都认识,问最多能选多少人。 解析: 反过来建边,将不认识的男生和女生相连,然后求一个二分图的最大独立集就行了。 下图很直观: 点击打开链接 原图: 现图: 、 代码: #pragma comment(

最大流=最小割=最小点权覆盖集=sum-最大点权独立集

二分图最小点覆盖和最大独立集都可以转化为最大匹配求解。 在这个基础上,把每个点赋予一个非负的权值,这两个问题就转化为:二分图最小点权覆盖和二分图最大点权独立集。   二分图最小点权覆盖     从x或者y集合中选取一些点,使这些点覆盖所有的边,并且选出来的点的权值尽可能小。 建模:     原二分图中的边(u,v)替换为容量为INF的有向边(u,v),设立源点s和汇点t

C++操作符重载实例(独立函数)

C++操作符重载实例,我们把坐标值CVector的加法进行重载,计算c3=c1+c2时,也就是计算x3=x1+x2,y3=y1+y2,今天我们以独立函数的方式重载操作符+(加号),以下是C++代码: c1802.cpp源代码: D:\YcjWork\CppTour>vim c1802.cpp #include <iostream>using namespace std;/*** 以独立函数

线性因子模型 - 独立分量分析(ICA)篇

序言 线性因子模型是数据分析与机器学习中的一类重要模型,它们通过引入潜变量( latent variables \text{latent variables} latent variables)来更好地表征数据。其中,独立分量分析( ICA \text{ICA} ICA)作为线性因子模型的一种,以其独特的视角和广泛的应用领域而备受关注。 ICA \text{ICA} ICA旨在将观察到的复杂信号

第四次北漂----挣个独立游戏的素材钱

第四次北漂,在智联招聘上,有个小公司主动和我联系。面试了下,决定入职了,osg/osgearth的。月薪两万一。 大跌眼镜的是,我入职后,第一天的工作内容就是接手他的工作,三天后他就离职了。 我之所以考虑入职,是因为 1,该公司有恒歌科技的freex平台源码,可以学学,对以前不懂的解解惑。 2,挣点素材钱,看看张亮002的视频,他用了6000多,在虚幻商城买的吸血鬼游戏相关的素材,可以玩两年。我

笔记本电脑配置:选择独立显卡还是集成显卡

2.4.1  笔记本电脑配置:选择独立显卡还是集成显卡   一般个人用笔记本电脑划分高低档次的方法主要是看CPU的档次和有无独立显卡。由于笔记本电脑的显卡通常设计成不能升级的部件,一旦选择后,显卡的配置就不能再变,而显卡通常会影响是否能玩哪些游戏或影响3D程序的运行速度,因此需要重点考虑。   集成显卡的特点是功耗小、发热量小、显存从内存中分配、价格便宜,适合上网、办公应用、学习、炒

独立按键单击检测(延时消抖+定时器扫描)

目录 独立按键简介 按键抖动 模块接线 延时消抖 Key.h Key.c 定时器扫描按键代码 Key.h Key.c main.c 思考  MultiButton按键驱动 独立按键简介 ​ 轻触按键相当于一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通与断开。  ​ 按键抖动 由于按键内部使用的是机

独立双端App《瓦格相机》的开发过程分享

前言 Hello大家好,我是灯灯,独立开发者灯灯,也是天天学藏语的灯灯,哈哈哈... 好了屁话少说,今天和大家分享一下最近自己独立制作一款应用的经验历程,希望能对刚刚起步的新手们、还有独立开发者们有所帮助。 什么样的应用 我想做的是一款能够将照片转换成文字拼成的图片应用,也就是,图片中的每一个像素点都将会被文字取代,同时对应色彩、密集程度等。 之所以想做这样的应用是因为早在我高中的时候,

思路与实现:一个人如何独立完成一款双端App

作为一名独立开发者,经常需要掌握各方面的技术与方法,无论是构思还是设计还是开发,都需要自己一个人去完成。 这时候,利用一些省力高效的诀窍便可以事半功倍,下面小编就来和大家分享一下小编的作品《跑车之家》的开发过程。 【灵感篇】 小编是名汽车迷,尤其是性能车、跑车迷,突然就想起做一款炫酷的跑车展览App,让用户以一种欣赏的方式去了解跑车。 首先想到的展览方式就是比较流行的卡片式滑动