初学者再土问,关于复位的
时间:10-02
整理:3721RD
点击:
2812看门狗模块中,说到WDFLAG是看门狗复位状态标示位,该位置1,表示是看门狗复位,
但看门狗复位时WDRST输出512个low给XRS,那此时XRS=0,而又有当XRS=0时,WDFLAG强制
为0,这不是矛盾了吗?还有,为什么要想区分看门狗复位和外部器件复位,必须外部复位
比看门狗的脉冲长,想了好久都想不出来,哭死啊!请教大侠解释!谢谢!
我自己顶!
我问的问题其实是看门狗复位和外部复位的是如何区分的?书上对这部分的介绍似乎是矛盾的,看不懂,也就是WDFLAG,XRS,WDRST它们在区分这两个复位中的相互关系无法理解,谢谢大侠解答!
我的意思是按照书上讲的WDFLAG就不能判断复位时到底是看门狗复位还是外部复位了!
原因我再叙述详细点吧:书上说是判断WDFLAG的状态来区分是哪种复位的,规则是WDFLAG=1,表示看门狗复位,WDFLAG=0,表示外部复位;然而问题就出来了,当看门狗复位的时候,WDRST输出512个时钟周期时长的0给XRS,也就是XRS=0,而当XRS=0时,WDFLAG是强制为0的,那么按照规则,不是变成外部复位了吗?矛盾就在这里,搞不清楚了!
书上还提到:“要想区分看门狗复位和外部期间复位,必须外部复位比看门狗的脉冲长”,这又是为什么?
大侠救我啊,我实在是尽力想了,还是想不出来!
首先,在正常情况下,/XRS=1。
当外部复位信号产生时,/XRS=0,WDFLAG被置为0,这种情况判为外部复位。
如果是内部看门狗复位,那么/XRS并没有立刻变为0,而是仍保持为1,DSP检测到/WDRST为上升沿并且/XRS为1,那么认为是内部看门狗复位,也就是说,/WDRST先为有效然后/XRS才变为0。