您好!
我们在 MSP430F2132上运行了两个版本的相同代码(在汇编器中)、其中一个使用间隔模式中的看门狗计时器、另一个使用连续模式中的计时器 A0、以15.625ms 的周期中断。
看门狗和定时器都使用相同的参考时钟、并且寄存器将时钟向下分频至相同的周期。
15.625ms 时间用于通过对64个中断进行计数、然后打开 LED、每秒闪烁一次 LED。
我们能够同步两个版本的代码(在单独的器件上同时运行)、以便 LED 彼此同步闪烁。 但是、在3分钟的时间内、两个 LED 闪烁间隔漂移并彼此不同步(这一点在眼图中很明显)。
如果我们使用相同版本的代码(既使用 WDT、又使用计时器 A0)对两个器件进行闪存、则 LED 会无限期保持同步。
WDT 中断和计时器 A0中断中的代码几乎相同。 唯一的区别是、计时器 A0代码将周期添加到其当前 CCR0值中、以便为下一个间隔进行设置。
如果我们将计时器 CCR0值减少2次计数(相当于3.81us)、则这两次几乎保持同步(30分钟后会变得明显)。
您是否知道看门狗计时器和计时器 A0之间会导致计时器周期略慢于看门狗的任何差异。 例如为中断提供服务的时间。
此致
CALLEX