功能说明
模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高低阈值, 用户可以预先设定个模拟看门狗的上下限电压值,一旦采集到的电压超出该上下限, 将会触发模拟看门狗中断。 模拟看门狗一般用于检测单个的常规或注入转换通道。
方法说明
模拟看门狗可以预先设置 ADC 转换的高低阈值, ADC_CMP0和ADC_CMP1可以自由配置为模拟看门狗的上下限阈值,需要注意的是,作为上限的寄存器需要设置为ADC_CMP_H触发中断,作为下限的寄存器要设置为ADC_CMP_L触发中断,下面的例程中使用ADC_CMP0 寄存器来配置 ADC 转换的下限阈值, ADC_CMP1 寄存器来配置ADC 转换的上限阈值。以173为例,设置输入电压的检测码值为1024-3072(对应电压为1.25V-3.75V,电压=码值*5V/4095),先配置PA6管脚为高电平,当ADC采集到的电压不在区间内时,触发中断处理函数,此处配置为将PA6拉低,代码如下所示。

配置步骤
1.初始化ADC中断函数,设置ADC_CMP0_L和ADC_CMP1_H中断触发时,将PA6拉低;
2.初始化ADC函数,设置ADC通道为ADCIN0,重复采样次数和平均系数为512,降低随机干扰;
3.设置ADC转换模式为连续转换;
4.设置ADC_CMP0和ADC_CMP1的阈值和中断;
5.启动ADC;
void adc_irqhandler(csp_adc_t *ptAdcBase)
{
uint32_t wIntStat = csp_adc_get_sr(ptAdcBase) & csp_adc_get_imr(ptAdcBase);//ADC_SR & ADC_IMR
while ((wIntStat =

本文介绍了如何在应用中利用模拟看门狗功能监控输入电压,设定上下限阈值,当电压超出范围时触发中断。详细讲解了配置步骤和中断处理函数,包括ADC初始化、中断设置和连续转换模式的使用。
最低0.47元/天 解锁文章
1928

被折叠的 条评论
为什么被折叠?



