英飞凌
直播中

贺楠

8年用户 1026经验值
私信 关注

做一个PSoC 5LP项目,运行无限循环时,WDT复位没有发生,为什么?

你好,我正在做一个 PSoC 5LP 项目,其中涉及 WDT 和内部 RTC。 我必须在系统运行时通过调用一个无限循环来模拟触发 WDT。 但我可以看到,在运行无限循环时,WDT 复位没有发生,整个系统及其显示屏处于冻结/卡住状态。 我想知道 WDT 不触发与 RTC 运行是否有任何关系,因为我在下面的帖子中看到,在 PSoC4 中,WDT  RTC 是相关的。
https://community.infineon.com/t5/PSoC-4/WDT-callback-does-not-get-called-if-I-use-RTC/td-p/86054

回帖(1)

尚文清

2024-7-23 17:27:19
在 PSoC 5LP 项目中,WDT(看门狗定时器)复位没有发生的原因可能有以下几点:

1. WDT 配置问题:请检查您的 WDT 配置是否正确。确保您已经设置了适当的超时周期、中断和复位选项。在 PSoC Creator 中,您可以在“看门狗定时器”组件的配置页面上进行这些设置。

2. WDT 服务函数未调用:在 PSoC 5LP 中,您需要在主循环中定期调用 WDT 服务函数(例如,CyWdtService)。如果未调用此函数,WDT 可能不会触发复位。请确保在主循环中添加以下代码:

```c
while(1)
{
    CyWdtService();
    // 其他代码
}
```

3. 中断优先级问题:确保 WDT 中断的优先级设置正确。如果其他中断的优先级高于 WDT 中断,WDT 中断可能无法正确触发。在 PSoC Creator 中,您可以在“中断”组件的配置页面上设置中断优先级。

4. 与 RTC 的关系:在 PSoC 4 中,WDT 和 RTC 之间确实存在一定的关联,但在 PSoC 5LP 中,这种关联可能不明显。然而,如果您的 RTC 配置不正确,可能会影响 WDT 的正常工作。请检查您的 RTC 配置,确保它不会干扰 WDT 的操作。

5. 硬件问题:如果以上方法都不能解决问题,可能是硬件存在问题。检查您的硬件连接和电源供应,确保它们正常工作。

综上所述,要解决 WDT 复位没有发生的问题,您需要检查 WDT 配置、服务函数调用、中断优先级设置以及 RTC 配置。如果问题仍然存在,请考虑检查硬件连接和电源供应。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分