其他分享
首页 > 其他分享> > ATSAM单片机学习笔记——WDT(看门狗)

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