ATSAM单片机学习笔记——WDT(看门狗)
作者:互联网
一、硬件
1.1 实验说明
ATSAMC21N18A单片机的看门狗分为经典看门狗和窗体看门狗,本次实验只使用经典看门狗,读者可以根据自己的情况来实验窗体看门狗。看门狗有早期预警中断,我们实验中并没有涉及到此中断。
在本次实验中,通过延时检测看门狗是否触发中断,芯片型号为ATSAMC21N18A。ATSAMC21N18A单片机看门狗内部时钟频率为1024Hz,时钟周期从8周期到16384周期,看门狗喂狗窗口理论时间从8毫秒到16秒,时钟周期设置为1024时,理论喂狗窗口时间为1秒,但实测仅800毫秒左右。
欢迎进入我的淘宝小店购买ATSAMC21N18A核心板。
https://item.taobao.com/item.htm?spm=a1z10.1-c.w137644-23265131341.41.2bab2259tWczpa&id=635574268127
1.2 外设
串口 —— (32)PB12(TXD2.SERCOM4/PAD[0])、(33)PB13(RXD2.SERCOM4/PAD[1])
二、配置
2.1 harmony配置
图2.1.1 harmony配置
由上图2.1.1可知,1号方框为串口配置,2号方框为系统配置,里面包括看门狗的一些属性设置。点击进入System配置对话框,进行下一步操作。
2.2 看门狗配置
图2.2.1 经典看门狗配置
由上图2.2.1可知,进入System对话框后,1号方框为是否使能看门狗,这里选择使能看门狗;2号方框选择默认使能;下面的3号方框为看门狗时钟周期配置,我们这里选择1024个周期,大约一秒中。最下面的两个方框,其上面的为是否使用看门狗,勾选则使用。下面的为是否使能看门狗早起预警中断,本次实验中并未使用到中断,顾不选择。
2.3 生成代码
图2.3.1 看门狗常用函数
三、程序
程序说明:通过改变延时函数里的延时参数来观察看门狗是否复位,本次实验的时钟周期设置为1024,喂狗时间大约在0.8秒之内,如果设置的延时参数小于规定的喂狗时间,则可以及时喂狗,“hello world.”打印就只出现一次。如果设置的延时参数大于规定的喂狗时间,则看门狗会触发看门狗复位中断,导致系统重启,“hello world.”打印周期性的出现。
#include <stddef.h> // Defines NULL #include <stdbool.h> // Defines true #include <stdlib.h> // Defines EXIT_FAILURE #include "definitions.h" // SYS function prototypes #include "delay.h" int main(void) { SYS_Initialize(NULL); printf("hello world.\r\n"); while(true) { delay_ms(800); //延时函数 WDT_Clear(); } }
标签:ATSAM,include,方框,单片机,ATSAMC21N18A,喂狗,延时,看门狗 来源: https://www.cnblogs.com/F-91/p/14973313.html