查看: 3094|回复: 1

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

[复制链接]
  • TA的每日心情
    擦汗
    2024-5-31 10:44
  • 签到天数: 1492 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2015-9-16 10:40:17 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 wudianjun2001 于 2015-9-16 10:41 编辑

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


    WDT的内部框图
    1.png

    WDT的工作模式
    2.png

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

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

    看门狗的初始化函数
    5.png

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

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

    回复

    使用道具 举报

    该用户从未签到

    发表于 2016-5-4 08:51:09 | 显示全部楼层
    楼主 ,请问一下有源代码吗,俺想学习下
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-11-20 23:38 , Processed in 0.122701 second(s), 18 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.