MSP430F5529初始化期间触发看门狗定时器。

4

我正在编写一个简单的游戏,并试图在MSP430F5529微控制器上对其进行测试。我遇到的问题与看门狗定时器有关。

我编写的代码导致设备重置,这表明存在看门狗定时器问题。我假设我需要在主代码的第一行之前停止它,某种形式的预初始化代码。我这样说是正确的吗?还是问题可能存在于代码的其他部分?

为了更清楚,我的主代码如下(简化形式):

  1. 停止看门狗定时器。
  2. 初始化板子(GPIO引脚)。
  3. 为CPU设置Vcore电压。
  4. 设置参考晶体(XTAL)。
  5. 设置系统时钟。
  6. 启用中断(全局)。
  7. 设置实时时钟(RTC)。
  8. 设置LCD显示。
  9. 初始化按钮。
  10. 在适当的低功耗模式中等待用户输入。

就我所知,这个代码序列应该是正确的。

1个回答

6
以下是翻译的结果:
这里有一些想法。如果您不打算喂狗,那么您必须明确地禁用看门狗。在pre-init代码中不应该这样做(除非您个人修改了pre-init代码并使其执行时间变长)。在main函数开始处执行这个操作应该没问题,但以下情况除外。有可能由于静态数组而强制在pre-init代码中将它们初始化为零。如果它们很大,这可能需要一些时间,足以让看门狗在退出pre-init代码之前触发。此外,在至少一些MSP430s上,您必须使用密码解锁时钟寄存器后才能写入它们。如果您不这样做,芯片将会重置。
如果您还没有看过有关pre-init代码中看门狗的讨论,请参阅以下链接:http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/267695.aspx

为什么您建议不要在pre-init代码中执行此操作? - gbudan
我并没有建议不要在pre-init代码中这样做;我是说你不应该这样做。我可能不应该说“不应该这样做”。这可能会暗示将pre-init代码更改为负面的事情(只要你知道自己在做什么,它就不是负面的),或者这种情况不经常发生(这是我的一种假设)。 - gtozzi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接