硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2889|回复: 0
收起左侧

[客户分享] AT32看门狗WDT使用方法

[复制链接]

23

主题

16

回帖

85

积分

初级会员

积分
85
发表于 2021-8-16 20:54:50 | 显示全部楼层 |阅读模式
本帖最后由 tutu 于 2022-2-21 19:37 编辑

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


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-14 21:05 , Processed in 0.185949 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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