查看: 1247|回复: 0

SAMD20 Xplained Pro学习6:看门狗WDT测试

[复制链接]
  • TA的每日心情
    擦汗
    2024-1-30 09:58
  • 签到天数: 1491 天

    连续签到: 2 天

    [LV.10]以坛为家III

    发表于 2016-1-14 08:46:28 | 显示全部楼层 |阅读模式
    分享到:
    SAMD20的看门狗和以前用过的其他的MCU有点不一样,SAMD20的WDT有两种工作模式:正常模式和窗口模式。两种模式都需要定义超时周期,并且发生超时情况下发出早期预警中断。区别是在窗口模式下,还需要在超时周期内定义一个称为窗口的时间槽,只有在窗口内清除计数才认为程序正常运行,否则过早或过晚清除都认为程序运行异常,并发出早期预警中断。
           正常模式下,WDT使能后,如果应用程序未能在超时周期到来前清除计数,WDT将发出系统复位,WDT清除计数操作可以在超时周期内任何时刻进行。预警中断只是提醒用户快点喂狗,再不喂狗,狗就要咬人了。
           窗口模式下,WDT使用两个超时周期:关闭窗口超时周期及正常超时周期,在关闭窗口超时周期内不能清除计数,如果执行清除计数,WDT将发出系统复位。
    本次试验使用的正常模式,测试看门狗的工作。
    WDT的内部框图

    WDT的工作模式

    我们这次使用的正常工作模式计数示意图

    操作外设首先要注意的是外设的使用时钟,我使用的是外设GLK2时钟,它是外部32.768KHZ的32分频,也就是1024HZ。这个在文件conf_clocks.h中定义

    看门狗的初始化函数

    看门狗的早期预警中断函数,里面搞了个计数,如果没有喂狗的话,可以看到计数器计数几次后系统复位

    主程序,相关部分很简单,在定时中断里喂狗,1S喂一次,如果不喂狗的话,4S后系统复位,读者可以把喂狗的语句去掉测试下

    热门推荐:
    SAMD20 Xplained Pro学习之作
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-5-22 02:58 , Processed in 0.133807 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.