对于我的 Tiva-c 微控制器、我将看门狗超时配置为1秒 禁用看门狗触发器功能后、需要2秒钟直到发生 CPU 复位。 1秒后 CPU 复位的正确配置是什么?
看门狗定时器可配置为在第一次超时后向处理器产生中断、并在第二次超时后产生复位信号。 是否有办法在第一次超时后获得 CPU 复位信号?
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.
对于我的 Tiva-c 微控制器、我将看门狗超时配置为1秒 禁用看门狗触发器功能后、需要2秒钟直到发生 CPU 复位。 1秒后 CPU 复位的正确配置是什么?
看门狗定时器可配置为在第一次超时后向处理器产生中断、并在第二次超时后产生复位信号。 是否有办法在第一次超时后获得 CPU 复位信号?
您好、dha1、
好的理解、我想确认您正在完全重新启动看门狗、因为您看到的内容(您可能会注意到)只会发生在看门狗的开始处。
根据器件规格、您看到的行为与看门狗的工作方式完全相同。 我将复制看门狗计时器的说明、然后进一步解释:
看门狗定时器模块 在32位计数器使能后达到零状态时产生第一个超时信号;使能计数器也使能看门狗定时器中断。 通过 WDTCTL 寄存器的 INTTYPE 位可以将看门狗中断编程为不可屏蔽中断(NMI)。 在发生第一次超时事件后、32位计数器将 重新装载看门狗定时器装载寄存器(WDTLOAD )的值、并且定时器从该值恢复递减计数。 一旦看门狗定时器被配置、看门狗定时器锁定 (WDTLOCK)寄存 器就会被写入、从而防止软件无意中更改定时器配置。 如果在第一次超时中断被清除之前定时器再次计数到0状态、并且 通过置位 WDTCTL 寄存 器的 RESEN 位使能复位信号、那么看门狗定时器向系统发出复位信号。 如果在32位计数器达到 第二次超时之前将中断清零、则32位计数器将加载 WDTLOAD 寄存器中的值、并 从该值恢复计数
如上所述、看门狗在定时器第一次递减计数时产生中断。 此时、ISR 可以执行两项操作之一。
1) 1)馈送看门狗以使其保持快乐、它将在后台运行、直到在下一次倒计数结束时准备好再次馈送
2) 2)通过不清除中断来忽略看门狗、然后当计时器再次递减计数时、它将检查 RESEN 是否已设置、如果已设置、则将复位 CPU。
换句话说、根据设计、您需要通过计时器两个周期、以便在启动计时器后能够通过看门狗超时功能重置 CPU。
一旦它运行、就更容易处理、因为您只需要不清除您获得的下一个中断、 但是、即使在这种情况下、如果您决定在清除计时器后立即复位、则可能需要接近2秒的时间才能完成该过程。