GD32F10x的窗口看门狗定时器
#include "WWDGT.h"
#include "stdio.h" //使能sprintf(),printf()
void WWDGT_Init(void);
void Check_WWDGT_Reset(void);
//函数功能:配置"窗口看门狗定时器",更新"计数器初始值"的时间t满足,28.5ms<t<38.8ms
void WWDGT_Init(void)
{
rcu_periph_clock_enable(RCU_WWDGT);//使能RCU_WWDGT外设时钟,enable WWDGT clock
wwdgt_config(127, 80, WWDGT_CFG_PSC_DIV8);
//设置"窗口看门狗定时器"计数器初始值为127,窗口值为80,预分频器值为8
//因为:CK_SYS经过AHB和APB1预分频器得到PCLK1,PCLK1最大为54MHz,PCLK1/4096为"窗口看门狗定时器"的预分频器输入时钟
//所以"窗口看门狗定时器"时钟 = (PCLK1/4096)/8
//假定PCLK1=54MHz,则"窗口看门狗定时器"时钟 = (54/4096)/8= 1648MHz,即单一脉冲时间为606.8us
//refresh window is: ~606.8 * (127-80)= 28.5ms < refresh window < ~606.8 * (127-63) =38.8ms.
//如果想再次设置"窗口看门狗定时器"的计数器初始值,则时间t满足,28.5ms<t<38.8ms
wwdgt_enable();
//wwdgt_counter_update(127);//喂狗,update WWDGT counte
}
//函数功能:检查"窗口看门狗定时器"是否复位
void Check_WWDGT_Reset(void)
{
if(RESET != rcu_flag_get(RCU_FLAG_WWDGTRST))
{//读取"窗口看门狗定时器复位标志"
rcu_all_reset_flag_clear();//清除CPU的"所有复位标志位"
printf("\r\nWWDG reset!");
}
}
#include "gd32f10x.h" //使能uint8_t,uint16_t,uint32_t,uint64_t,int8_t,int16_t,int32_t,int64_t,bool
#include "delay.h"
//#include "IWDG.h"
#include "WWDGT.h"
#include "stdio.h" //使能printf(),sprintf()
#include "LED.h"
#include "USART0.h"
const char CPU_Reset_REG[]="\r\nCPU reset!\r\n";
int main(void)
{
//NVIC_PRIGROUP_PRE4_SUB0:抢占优先级为4bit(取值为0~15),子优先级为0bit(没有响应优先级)
//NVIC_PRIGROUP_PRE3_SUB1:抢占优先级为3bit(取值为0~7),子优先级为1bit(取值为0~1)
//NVIC_PRIGROUP_PRE2_SUB2:抢占优先级为2bit(取值为0~3),子优先级为2bit(取值为0~3)
//NVIC_PRIGROUP_PRE1_SUB3:抢占优先级为1bit(取值为0~1),子优先级为3bit(取值为0~7)
//NVIC_PRIGROUP_PRE0_SUB4:抢占优先级为0bit(没有抢占优先级),子优先级为3bit(取值为0~15)
nvic_priority_group_set(NVIC_PRIGROUP_PRE4_SUB0);//设置系统中断优先级"抢占优先级为4bit,子优先级为0bit"
INTX_ENABLE();//开启所有中断
USART0_Init(115200);
printf("%s",CPU_Reset_REG);//调试串口输出"\r\nCPU reset!\r\n"
LED2_Init();//初始化LED2端口
LED3_Init();//初始化LED3端口
LED4_Init();//初始化LED4端口
LED5_Init();//初始化LED5端口
delay_init();
Check_WWDGT_Reset();//检查"窗口看门狗定时器"是否复位
WWDGT_Init();//配置"窗口看门狗定时器",更新"计数器初始值"的时间t满足,28.5ms<t<38.8ms
while(1)
{
delay_ms(30);//配置"窗口看门狗定时器",更新"计数器初始值"的时间t满足,28.5ms<t<38.8ms,所以这里需要延时30ms
wwdgt_counter_update(127);//喂狗,update WWDGT counte
LED2_Toggle();
}
}
GD32F10x的窗口看门狗定时器相关推荐
- c语言看门狗指令pic,PIC单片机的窗口看门狗定时器.PDF
PIC单片机的窗口看门狗定时器 TB3123 PIC® 单片机的窗口看门狗定时器 作者: Ashutosh Tiwari Microchip Technology Inc. 简介 窗口看门狗定时器(W ...
- stm32 定时器_如何计算STM32定时器、独立看门狗和窗口看门狗
点击上方蓝色字体,关注我们 本博文简要阐述STM32L011微控制器定时器的参数配置(其他型号大同小异,本文侧重讲解配置,至于各类定时器的特点后续再述),STM32定时器种类繁多有通用定时器.基本定时 ...
- 如何计算STM32定时器、独立看门狗和窗口看门狗
目录 1.基本.通用类型定时器 2.独立看门狗定时器 3.窗口看门狗定时器 之前分享了STM32 GPIO的原理.特性.选型和配置.如何计算RTC时钟异步预分频和同步预分频,这次简要阐述STM32L0 ...
- stm32 独立看门狗和窗口看门狗区别
原文地址https://www.cnblogs.com/pertor/p/9483445.html 一.使用调条件 二.特点对比 三.手册介绍 [注]图中的WDGTB为3表示2^3=8,表示8分频,最 ...
- 窗口看门狗实验定时器基本原理
目录 1. 窗口看门狗 1.1 窗口看门狗概述 1.1.1 窗口看门狗工作示意图 1.1.2 窗口看门狗工作过程总结 1.1.3 窗口看门狗超时时间 1.1.4 为什么要窗口看门狗 ? 1 ...
- 看门狗(独立看门狗)与窗口看门狗的区别!
看门狗(独立看门狗)与窗口看门狗的区别 在cortex-M系列芯片上有两个看门狗:看门狗(独立看门狗)和窗口看门狗. 1.相同点 都是为了保证CPU程序跑飞 2.独立看门狗 根据内部看门狗时钟频率,装 ...
- 【转载】外设使用Tips之MPC574xP系列汽车级MCU的SWT看门狗定时器配置与使用
外设使用Tips之MPC574xP系列汽车级MCU的SWT看门狗定时器配置与使用 原创 2017-09-13 胡恩伟 汽车电子expert成长之路 内容提要 引言 1. SWT的功能概述 2. SWT ...
- 独立看门狗与窗口看门狗
定义 看门狗的本质是一个定时器,在启动后,需要在一定时间内再给它一个信号,俗称"喂狗",如果没有按时"喂狗",说明MCU可能处于非正常状态,这时看门狗就向MCU ...
- 窗口看门狗和独立看门狗区别
最近在cortex-M系列芯片上进行看门狗编程的时候发现了关于看门狗有两个:(独立)看门狗和窗口看门狗.然后就查找了下网络资源,对这两个看门狗做了区分. 1.相同点 都是为了防止CPU跑飞 2.独立看 ...
- 窗口看门狗与独立看门狗区别
独立看门狗与窗口看门狗的区别 1.相同点 都是为了保证CPU程序跑飞 2.独立看门狗 根据内部看门狗时钟频率,装载寄存器定一个时间值,比如是1000,那么独立看门狗就会按照时钟频率,从1000开始向下 ...
最新文章
- 30个在线学习设计与开发的站点
- textarea 固定大小,滚动条,限制拖动,文字对齐
- 遇到虚拟系统内存问题怎么办?Hypervisor帮你除bug
- 人工智能岗位替代----办公文员
- js页面加载前执行_做一名合格的前端开发工程师:Javascript加载执行问题探索
- 2019计算机科学与技术调剂信息,福建师范大学计算机科学与技术2019考研调剂信息...
- cad通过钢筋大样生成钢筋明细表插件_各位做室内外设计的朋友,告别CAD单线画图,用天正建筑更方便...
- POJ 1080 Human Gene Functions(DP:LCS)
- SpringSecurity系列(三) Spring Security 表单登录
- 蓝桥杯 k倍区间(前缀和)
- 让你的软件支持繁体中文
- python烧录单片机_mac实现烧写51单片机
- Error 1606 Could Not Access Network Location %SystemDrive%/inetpub/wwwroot/
- web前端期末大作业 html+css+javascript防天天生鲜官网网页设计实例 企业网站制作
- XGBoost资料( 多届竞赛冠军获得者 周耀 整理)
- succi - 接小球游戏
- 实现省市县的两种方式
- [DP]hdu5234
- RMAN维护:RMAN中的交叉校验crosscheck
- Nginx安装配置及使用方法