主题中讨论的其他器件: MSP-FET
我正在研究一些过去5年以上一直在运行的旧代码(自从我加入公司以来)、我注意到在我们的一个具有 MSP430F2132的电路板上、当我单步执行下面显示的 disable_watchdog 例程时、我在调试模式下看到了这些代码、 它会立即跳转至复位矢量。
使用的看门狗宏:
#define WDTCR_INIT() {WDTCTL =(U16)(WDTPW+WDTHOLD+WDTIS1);\
WDTCTL =(U16)(WDTPW+WDTCNTCL+WDTSSEL+WDTIS1);}
#define KICK 安全装置() (WDTCTL =(U16)(WDTPW+WDTCNTCL+WDTSSEL+WDTIS1))
#define disable_watchdog () (WDTCTL =(U16)(WDTPW+WDTHOLD+WDTIS1))
第3个参数 WDTIIS1 (所选时钟源的分频)似乎导致了问题。 如果我将其删除、它将执行预期的命令以禁用看门狗、但我的担心是、此代码已运行多年、现在才开始给我一些问题。
我使用的是 IAR MSP430 IDE、一年来、它的编译器和 IDE 已经有过几次更新(不确定这是否以任何方式相关)
禁用看门狗宏中的 WDTIST1为什么会强制跳转到复位矢量?
KR、
Alki