我引用维基百科:
A watchdog timer (WDT; sometimes called a computer operating properly or COP timer, or simply a watchdog) is an electronic timer that is used to detect and recover from computer malfunctions.
在使用STM32F429I-Discovery时,我遇到了一个术语[在“stm32f4xx.h”
]中,它使用寄存器来禁用看门狗:
#define ADC_CR1_AWDIE ((uint32_t)0x00000040) //Analog Watchdog interrupt enable
在这里,我无法理解模拟看门狗
如果可能的话,
#define ADC_CR1_JAWDEN ((uint32_t)0x00400000) //Analog watchdog enable on injected channels
这里的注入(inject) channel 是什么?
最佳答案
看门狗定时器可以被认为是两个独立的电路,一个定时器电路和一个看门狗电路。定时器电路仅计算耗时。看门狗电路主动监视定时器,以查看是否已经过了一定的时间而没有被软件复位。如果是这样,软件将不再运行,看门狗通常会执行自动功能,例如重置处理器。看门狗只需要在初始化时被告知要监视多少时间,然后它就会处理其余的操作,而无需额外的软件交互。
模拟看门狗以类似的方式运行。只是它不是监视定时器,而是监视模拟输入 channel 。在初始化时,您告诉看门狗要监视哪些模拟阈值。如果模拟输入上的转换值超过这些阈值之一,它将触发一个中断,以便您处理信号样本。这意味着您不必编写代码来连续轮询模拟输入并检查其电平。这一切都是由模拟看门狗电路在后台自主处理的。
注入(inject) channel 可以被视为高优先级转换 channel 。如果常规模拟输入正在执行转换,并且在注入(inject) channel 上触发了转换(通过定时器或因为在连续转换模式下编程),则常规 channel 上的转换将停止并等待,同时注入(inject) channel 在完成其自身转换之前进行转换。如果您有必须实时响应的模拟输入,这非常有用。
这是一个application note (由于某种奇怪的原因,ST 的网站上似乎没有提供),其中给出了一些使用各种 ADC 功能的示例。这是 another explanation您的问题涉及的两个功能。
关于embedded - 什么是模拟看门狗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25154845/