首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stellaris Launchpad LM4F120上的看门狗配置

Stellaris Launchpad LM4F120上的看门狗配置
EN

Stack Overflow用户
提问于 2013-01-28 19:03:25
回答 2查看 649关注 0票数 1

我尝试在LM4F120上配置看门狗计时器。

守则如下:

代码语言:javascript
复制
void configure_watchdog(void) {
    SYSCTL_RCGCWD_R = 0x1; /* Enabling Clock for WD0 */
    WATCHDOG0_LOAD_R = 0xffffffff; /* Setting initial value */
    WATCHDOG0_CTL_R = WDT_CTL_INTEN; /* Enabling interrupt generation */
}

根据数据表,这应该足够了。

问题是控制器总是落在FaultISR上,然后重置。我不明白为什么。

我做错了什么?

编辑:控制器不重置。它只会传到FaultISR

EN

回答 2

Stack Overflow用户

发布于 2013-01-28 20:02:31

当看门狗到期时跳到ISR听起来是正确的行为。你在你的ISR代码里到底在做什么?如果您在ISR内重置看门狗,那么您不应该看到微控制器重新设置自身(至少基于您发布的配置代码)。设置了看门狗之后,请将配置寄存器读入外部,并确保它包含您期望的值。该寄存器中的某些位只能在特定情况下设置,而且可能没有使用您认为正在使用的设置。

您刚才提到您试图使用看门狗计时器作为通用的计数器。你能用一个通用计时器代替看门狗吗?当时间过期时,您仍然会得到一个中断,但是常规计时器无法重置整个系统。

票数 2
EN

Stack Overflow用户

发布于 2013-01-30 13:11:29

您必须继续维护看门狗,否则它会超时,并为该异常调用任何设置。在你的情况下,FaultISR似乎就是这样的。

如果希望看门狗在超时时执行其他操作,则需要弄清楚特定的工具链如何将函数连接到异常源,并正确映射新函数。

如果您不希望看门狗过期(这通常是它的目的,以捕获错误的代码),那么您需要定期为它提供服务。编译器供应商通常会提供一个函数或内部函数来完成这一任务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14569224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档