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

时间:2014-05-20 19:26:26

标签: embedded microcontroller msp430 watchdog

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

我编写的代码导致器件复位,这表示看门狗定时器问题。我假设我需要在我的主代码的第一行,某种预初始化代码之前停止它。我是否在正确的轨道上说,或者问题可能还在代码的其他部分?

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

  1. 停止看门狗定时器。
  2. 初始化电路板(GPIO引脚)。
  3. 设置CPU的Vcore电压。
  4. 设置参考晶体(XTAL)。
  5. 设置系统时钟。
  6. 启用中断(全局)。
  7. 设置实时时钟(RTC)。
  8. 设置LCD显示屏。
  9. 初始化按钮。
  10. 在适当的LPM模式下等待用户输入。
  11. 就我而言,这段代码应该是正确的。

1 个答案:

答案 0 :(得分:6)

以下是一些想法。如果您不打算喂它,您必须明确禁用看门狗。您不必在pre-init代码中执行此操作(除非您亲自修改了pre-init代码并使其执行时间更长)。除了以下情况之外,在main的开头做它应该没问题。静态数组可能会强制它们在pre-init代码中初始化为零。如果它们很大,那可能需要一些时间,也许足以让我们在退出pre-init代码之前触发看门狗。此外,至少在某些MSP430上,必须先使用密码解锁时钟寄存器,然后再写入。如果不这样做,芯片将重置。

如果你还没有看到它,那么这是一个在pre-init代码中讨论看门狗的链接: http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/267695.aspx