遇到一个奇怪的事情,在程序的某种特定条件下会触发看门狗复位,更神奇的是,任意的增加几行代码又不不会出现复位!感觉像是哪个地方有溢出。后来直接在会复位的代码上,不删减增加代码,而是只改SysCtrlRegs.WDCR = 0x002D; 改为SysCtrlRegs.WDCR = 0x0068;即把看门狗清除,这样的话就不会出现了!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
遇到一个奇怪的事情,在程序的某种特定条件下会触发看门狗复位,更神奇的是,任意的增加几行代码又不不会出现复位!感觉像是哪个地方有溢出。后来直接在会复位的代码上,不删减增加代码,而是只改SysCtrlRegs.WDCR = 0x002D; 改为SysCtrlRegs.WDCR = 0x0068;即把看门狗清除,这样的话就不会出现了!
谢谢您的回复,但是为什么增加一些代码却不出现呢?可以肯定的是这些代码是不对程序产生实际作用
有没有看下寄存器WDCR的WDFLAG位,看下是什么导致的复位。
寄存器WDCR的WDFLAG位能指示出什么?比如为0代表什么,为1代表什么
非常感谢您的回复,我现在可以确定如果不使能看门狗的话,程序会跑死了,但是不会复位,所以从这个情况来看是看门狗复位了。并且中断一直在执行!因为中断有做发PWM波,发现一直在发波,只是主循环死了