找回密码
 立即注册
查看: 305|回复: 8

24M主频的STC8HK08看门狗设置256分频,一秒甚至500毫秒都会复位,用的40ms才行

[复制链接]

21

主题

38

回帖

402

积分

中级会员

积分
402
发表于 2024-7-10 09:20:53 | 显示全部楼层 |阅读模式
理论上溢出时间是4秒左右,我不管是1s还是500ms喂一次都不会触发喂狗才对
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-7-10 09:34:08 | 显示全部楼层
本帖最后由 _奶咖君_ 于 2024-7-10 09:35 编辑

感觉可能是用法有问题,,,,,,下载的时候是否勾选了硬件开启看门狗?
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

21

主题

38

回帖

402

积分

中级会员

积分
402
发表于 2024-7-10 09:37:01 | 显示全部楼层
_奶*** 发表于 2024-7-10 09:34
感觉可能是用法有问题,,,
看门狗的用的不是主频,是一个内部的时钟,,
还有一件事,,下载的时候是否勾 ...

看门狗好像用的就是主频吧,我记得之前有看过相关的解释,下载的时候没有勾选硬件开启
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-7-10 09:42:01 | 显示全部楼层
Mike*** 发表于 2024-7-10 09:37
看门狗好像用的就是主频吧,我记得之前有看过相关的解释,下载的时候没有勾选硬件开启 ...

记错了,,,看了一眼手册 。想起来了
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-7-10 09:42:52 | 显示全部楼层
Mike*** 发表于 2024-7-10 09:37
看门狗好像用的就是主频吧,我记得之前有看过相关的解释,下载的时候没有勾选硬件开启 ...

感觉是分频系数有问题,,在检查你的代码吧
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

21

主题

38

回帖

402

积分

中级会员

积分
402
发表于 2024-7-10 10:01:40 | 显示全部楼层
_奶*** 发表于 2024-7-10 09:42
感觉是分频系数有问题,,在检查你的代码吧

WDT_InitTypeDef WDT_InitStructure;

    // Configure the WDT to be enabled or disabled
    WDT_InitStructure.WDT_Enable    = ENABLE;           // Interrupt enable   ENABLE or DISABLE
    // Configure the WDT to stop counting during CPU idle
    WDT_InitStructure.WDT_IDLE_Mode = WDT_IDLE_STOP;    // IDLE mode Indicates whether to stop counting                        WDT_IDLE_STOP,WDT_IDLE_RUN
    // Set the clock division factor of the WDT, determining the timeout period
    WDT_InitStructure.WDT_PS        = WDT_SCALE_256;            // Watchdog timer clock frequency division factor                WDT_SCALE_2,WDT_SCALE_4,WDT_SCALE_8,WDT_SCALE_16,WDT_SCALE_32,WDT_SCALE_64,WDT_SCALE_128,WDT_SCALE_256
    // Initialize the WDT with the configured parameters
    WDT_Inilize(&WDT_InitStructure);                    // initialize
用的库函数开发,就一个分频系数改了,外界一个任务在定时跑喂狗
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-7-10 10:29:44 | 显示全部楼层
本帖最后由 _奶咖君_ 于 2024-7-10 10:31 编辑
Mike*** 发表于 2024-7-10 10:01
WDT_InitTypeDef WDT_InitStructure;

    // Configure the WDT to be enabled or disabled

喂狗呢?感觉应该不会 ,库函数啊,喂狗的时候吧分频值改了?

喂狗的源代码看过么?
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

21

主题

38

回帖

402

积分

中级会员

积分
402
发表于 2024-7-10 10:38:21 | 显示全部楼层
_奶*** 发表于 2024-7-10 10:29
喂狗呢?感觉应该不会 ,库函数啊,喂狗的时候吧分频值改了?

喂狗的源代码看过么?

这个提醒到我了 我看了一下喂狗的底层,有关于分频的定义,前面没注意这块默认是16分频,现在改了,应该是这个问题导致的,我验证一下
void WDT_Feed (void)
{
        WDT_CONTR = (D_EN_WDT + D_CLR_WDT + D_WDT_SCALE_256);    // feed the dog
}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-7-10 10:40:59 | 显示全部楼层
这库函数代码写的真不咋地,, 慎用吧
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 06:36 , Processed in 0.283610 second(s), 99 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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