[开发工具] AT32看门狗WDT使用方法

[复制链接]
 楼主| 两只袜子 发表于 2023-5-6 10:17 | 显示全部楼层 |阅读模式
AT32的看门狗是一个12位递减计数器,当看门狗递减到0时产生系统复位,使用LICK(频率大约为40Khz)作为看门狗时钟,,在应用程序中,需要不断地刷新计数器(俗称喂狗),以防止看门狗发生复位,看门狗虽然是一个很小的外设,功能也相对简单,但是对我们的设备能可靠的运行起到了很大的作用,它可以在一些意外情况(比如干扰,程序bug)导致程序跑飞时,复位mcu

  /* 解锁看门狗写保护*/
  wdt_register_write_enable(TRUE);  

  /* 设置分频系数为32*/
  wdt_divider_set(WDT_CLK_DIV_32);

  /* 设置看门狗的复位时间为250ms. (LickFreq一般等于40000hz)
     重载值  = 250ms / (32/LickFreq)
             = 0.25s / (32/LickFreq)
             = LickFreq/(32 * 4)
             = LickFreq/128
  */
  wdt_reload_value_set(LickFreq / 128);

  /* 重载看门狗计数器*/
  wdt_counter_reload();

  /* 使能看门狗 */
  wdt_enable();


AT32关于看门狗的官方demo见以下路径
project\at_start_f403a\examples\wdt\wdt_reset
598330983 发表于 2023-5-9 14:20 | 显示全部楼层
有看门狗的不能设置那种死死的等待的操作,比如while(P00==0);这种
tpgf 发表于 2023-6-6 11:58 | 显示全部楼层
它只有递减一种模式吗 可以更改它的计数模式吗
nawu 发表于 2023-6-6 13:14 | 显示全部楼层
在比较复杂的程序中,什么位置喂狗是比较合适的呢
aoyi 发表于 2023-6-6 13:53 | 显示全部楼层
这个只是涉及到了看门狗模块的配置问题  如何使用呢
zljiu 发表于 2023-6-6 14:13 | 显示全部楼层
为什么需要重载看门狗计数器呢 他的作用是什么
gwsan 发表于 2023-6-6 14:26 | 显示全部楼层
如果看门狗用不好的话 反而会产生意外的复位现象
tfqi 发表于 2023-6-6 14:46 | 显示全部楼层
喂狗的位置以及时机都是非常考验编程功底的
chenjun89 发表于 2023-6-10 22:43 来自手机 | 显示全部楼层
看门狗计时器也可以当普通定时器用
chenqianqian 发表于 2023-6-10 22:56 来自手机 | 显示全部楼层
一般都用外部硬件看门狗
Henryko 发表于 2023-6-12 22:59 | 显示全部楼层
nawu 发表于 2023-6-6 13:14
在比较复杂的程序中,什么位置喂狗是比较合适的呢

反正不能在中断里喂狗
csy1123 发表于 2023-6-14 13:54 | 显示全部楼层
看门狗可以停止吗
benjaminka 发表于 2023-7-5 20:33 | 显示全部楼层
为避免WDT逾时复位,用户必须定期用PWRSAV 或CLRWDT 指令将看门狗定时器清零。
gygp 发表于 2023-7-5 20:53 | 显示全部楼层
看门狗 溢出后有专门的中断向量。
mmbs 发表于 2023-7-5 21:03 | 显示全部楼层
在启用WDT之前,首先需要使能WDT时钟。  
mnynt121 发表于 2023-7-5 21:12 | 显示全部楼层
配置WDT的参数,如超时时间和预分频器。超时时间决定了WDT的计数周期,而预分频器用于调整WDT的时钟源。这些参数通常可以通过写入WDT相关的寄存器来进行配置。
lzmm 发表于 2023-7-5 21:43 | 显示全部楼层
可以将喂狗操作放置在适当的位置,如主循环、中断服务程序等。
1988020566 发表于 2023-7-6 10:17 | 显示全部楼层
看门狗怎样设置               
uytyu 发表于 2023-7-6 10:20 | 显示全部楼层
禁用WDT可能会对系统的可靠性产生潜在风险。  
wwppd 发表于 2023-7-6 10:26 | 显示全部楼层
请参考相关的参考手册或数据表以了解寄存器的名称和位置。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2122

主题

8122

帖子

11

粉丝
快速回复 返回顶部 返回列表