ABOV单片机内部看门狗WDT的代码实现讲解及示例代码-[MC96F6332D]
一、准备工作
1、KEIL C51编译环境
2、CodeGen8 代码生成器
3、MC96F6332D 开发板
4、USB-OCD II仿真器
二、内部看门狗代码生成
1、在CodeGen8 代码生成器的外设窗口中选择内部RC时钟作为时钟源,设置时钟源的频率为8MHz,配置GPIO引脚P52为外部的可中断输入引脚,使能MCU内部的上拉电阻和防抖动功能(使能外部中断为后面喂狗的操作);具体配置如下图①、②所示,
看门狗的代码生成如下图③所示:
2、点击CodeGen8 中的C 图标,自动打开KEIL C51软件;
3、在主函数的循环体中增加如下代码,使用外部引脚进行看门狗的喂狗操作,实际的工程中可以使用定时器进行定时喂狗;
while(1){if(EXIT8_STA) //判断外部中断8是否存在{WDT_clear(); //在恰当的时间内进行喂狗操作,防止MCU复位EXIT8_STA = 0;printf("EXIT 8 Interrupt To Clear WDT Counter!\r\n");}}
4、编译结果如下所示:
5、关于看门狗时钟的配置讲解:
1)、时钟选择:看门狗时钟选择内部的WDTRC时钟,默认频率为5kHz且不能改变(5kHz仅仅是典型值),此5kHz时钟系统默认已经分频256,这里需要特别注意;在系统时钟章节的方框图可以看出,具体如下图所示:
2)、看门狗的运行方框图如下所示:时钟输入后,WDTCNT会不断进行计数,并和WDTDR数据寄存器内的数据进行比较,当WDTCNT等于WDTDR寄存器设置的数值时,WDTCR控制进行MCU的复位或者中断;如此周而复始的工作;本例中仅仅使能WDT的系统复位操作;
具体的复位周期计算公式为:T=(WDTDR+1) / (WDTRC/256)=(FF+1)/(5K/256)≈13.1072s;
3)、关于WDT的寄存器操作也跟简单,如下所示:
6、点击编译器的下载按钮,将刚刚编译好的代码下载到MCU中进行仿真调试。
7、连接串口助手到PC端,可以看到代码的正常运行:外部中断在10s内进行喂狗,系统不会进行复位(没有初始化信息的输出:System initialized successfully!),如下如①所示;如果没有对MCU进行喂狗操作,MCU在看门狗寄存器WDTCNT溢出后会进行系统复位,如下如②所示;如果系统启动后一直不进行喂狗操作,系统会不断的进行复位,如下图③所示;
三、实验现象(具体内容可以参考工程中的Readme.txt文件)
1、MCU主频选择为内部8MHz;
2、外部引脚P52设置为下降沿触发中断,在主函数中判断对应的中断状态是否为真,如果为真,会进行状态标识位的置位,在主函数中会进行看门狗的喂狗操作,并打印喂狗信息到串口,提示系统已经喂狗;WDT的使用中需要特别注意看门狗时钟漂移问题,5kHz仅仅是典型值;如下图所示:
3、具体的代码可以访问链接:https://share.weiyun.com/5ZfEBpX;进行免费获取。
因为小编自己能力水平有限,文中难免有错误或表达失误的信息,还望广大阅读者留言批评指正,谢谢。
ABOV单片机内部看门狗WDT的代码实现讲解及示例代码-[MC96F6332D]相关推荐
- ABOV单片机UART串口通讯中Printf函数实现讲解及示例代码-[MC96F6332D]
一.准备工作 1.KEIL C51编译环境 2.CodeGen8 代码生成器 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.生成串口代码 1.在CodeGen8 代码生成器的外 ...
- ABOV单片机内部定时器Timer1的定时器代码实现讲解及示例代码-[MC96F6332D]
一.准备工作 1.KEIL C51编译环境 2.CodeGen8 代码生成器 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.内部定时器PWM代码生成 1.在CodeGen8 代 ...
- ABOV单片机内部中断优先级寄存器IP1x/IPx的设置代码实现讲解及示例代码-[MC96F6332D]
一.准备工作 1.KEIL C51编译环境 2.外部中断EINT示例代码-MC96F6332D 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.代码部分 1.现代单片机MC96F ...
- ABOV单片机内部WT时钟RTC的代码实现讲解及示例代码-[MC96F6332D]
一.准备工作 1.KEIL C51编译环境 2.CodeGen8 代码生成器 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.内部WT时钟代码生成 1.在CodeGen8 代码生 ...
- ABOV单片机模数转换ADC部分代码实现讲解及示例代码-[MC96F6332D]
一.准备工作 1.KEIL C51编译环境 2.CodeGen8 代码生成器 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.ADC的配置和代码生成 1.在CodeGen8 代码 ...
- ABOV单片机UART串口通讯实现讲解及示例代码-[MC96F6332D]
一.准备工作 1.KEIL C51编译环境 2.CodeGen8 代码生成器 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.生成串口通讯代码 1.在CodeGen8 代码生成器 ...
- 我的内核学习笔记9:Intel内部看门狗iTCO_wdt驱动
本文对Intel e3800内部看门狗驱动源码进行分析. 一.概述 Intel e3800内部看门狗在手册的PCU - Power Management Controller (PMC)章节中介绍-- ...
- nRF52832看门狗WDT使用(SDK17.1.0)
陈拓 2022/10/29-2022/10/31 1. 开发环境 操作系统: Window10.WSL 编译环境: ARM GCC IDE: VSCode SDK版本: SDK_17.1.0 硬件开发 ...
- 瑞萨e2studio(18)----看门狗WDT
瑞萨e2studio.18--看门狗WDT 概述 硬件准备 新建工程 工程模板 保存工程路径 芯片配置 工程模板选择 WDT配置 WDT属性配置 RTC配置 RTC属性配置 设置e2studio堆栈 ...
最新文章
- 一个filter引起的404错误
- 重温数据结构:树 及 Java 实现(转)
- java long 唯一_Java工具类:获取long型唯一ID
- 6.Kong入门与实战 基于Nginx和OpenResty的云原生微服务网关 --- Lua 语言
- 3) Maven 目录结构
- 关于彩虹猫病毒的分析
- PSV1000刷黑商
- php 分换算成元,千元换算成元(千元单位换算器)
- nii格式转化为png格式或者img格式
- android 经纬度的格式,的Android如何转换经纬度成度格式
- win10小娜助手无法搜索本地应用怎么办
- 一种结合基于股债利差的A股估值百分位、有限价值策略定投和股债组合投资的创新型低回撤高收益稳健理财方法
- 如何使用Ajax更新echarts工作省份信息
- Unity之JSON(数据存储)
- 在计算机控制系统中 常常需要设计,微型计算机控制技术第4章习题答案
- 手工做迷宫_纸盒子废物利用手工自制小迷宫教玩具给幼儿玩(步骤图解)
- iOS保持App真后台运行
- linux9.0安装教程,RedHat linux 9.0详细图文安装教程
- 好口才是如何炼成的!
- [转]阿里巴巴离职DBA 35岁总结的职业生涯