打印
[APM32F0]

APM32F003独立看门狗超时时间计算

[复制链接]
558|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hexbei|  楼主 | 2023-12-8 14:23 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hexbei 于 2024-1-22 18:06 编辑

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

    IWDT_Enable();
    IWDT_EnableWriteAccess();

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

}


  • 按照上面的配置,需要填入的值有两个。一个是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


上述的方法是根据代码简化后的。完整的计算方法请参考手册


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

21

帖子

2

粉丝