窗口看门狗WWDT,MSPM0L系列的看门狗的时钟使用的是32KHz的LFCLK,计数器有25位,寄存器可以有8个可选的计数周期,加上时钟的最大8分频,也就是有64档计数周期可选,从1.95ms到8190s,有两个阈值,关闭窗口(closed window)和打开窗口(open window)。
在一个计数中期中,会产生两次看门狗事件,喂狗只能在open window中进行,在closed window中喂狗会造成系统复位,同样的在计数结束后系统将会系统复位。
Close window可以调整为周期的百分比,例如调整为0%将会关闭closed window功能,从0%到87.5%的比例共8档可选,有两个close window的比例寄存器可选(window 0/1),在计数开始的时候只有一个配置可以生效。
如果不使用看门狗功能,也可以把这个计数器当做间隔定时器用于中断CPU。
下面配置一个500ms的看门狗定时器来看下看门狗的使用配置,在SYSCONFIG中,配置一个WWDT。
这里的周期配置了500ms,close window是25%,open window是75%,也就是125ms后可以喂狗,超过500ms就系统复位,这里还配置了周期为300ms的一个定时器0,用于喂狗。
定时器中断选择了计数到0中断。
另外还初始化PA14用于指示喂狗情况。
看门狗在复位后第一次写入WWDTCL0寄存器的时候就会自动启动,需要在相应的时间内喂狗,否则会复位。
程序比较简单,初始化后开启定时器,等待300ms中断后喂狗一次,PA0会翻转指示喂狗成功。
配套例程为WWDT,需要复制到SDK目录下运行。
全部0条评论
快来发表一下你的评论吧 !