[APM32F0] APM32F003独立看门狗超时时间计算

[复制链接]
 楼主| hexbei 发表于 2023-12-8 14:23 | 显示全部楼层 |阅读模式
本帖最后由 hexbei 于 2024-1-22 18:06 编辑

例程给的代码如下:
  1. void IWDT_Init(uint32_t freqLIRC)
  2. {

  3.     IWDT_Enable();
  4.     IWDT_EnableWriteAccess();

  5.     //简化计算为
  6.     //  y = x * 2 / T
  7.     // x为DIV的系数 y为freqLIRC除以的值
  8.     IWDT_SetDivider(IWDT_DIV_4);
  9.     IWDT_SetReloadCounter(freqLIRC / 2666);
  10.     IWDT_ReloadCounter();

  11. }


  • 按照上面的配置,需要填入的值有两个。一个是IWDT_SetDivider(IWDT_DIV_4)​里面的DIV;另一个是IWDT_SetReloadCounter(freqLIRC / 2666)​里面freqLIRC除以的数。
  • 设需要定的超时时间为T,要除以的数为x,计算方式为 DIV * 2 / T = x
  • 例如想要设定定时值为3ms,计算方式为 4 * 2 / 0.003 ≈ 2667。所以我们填入2667
  • DIV的选取可以参考手册里的。一般来说,freqLIRC / x 的值不能超过256

313f27e8881d1640d2b6035b4e9889a_1686911239869_0-20231007164608-maagphy.png
上述的方法是根据代码简化后的。完整的计算方法请参考手册


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

本版积分规则

20

主题

21

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

20

主题

21

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部