你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

求教各路大佬,关于使用两路 ADC 看门狗

[复制链接]
Wayyt 提问时间:2020-4-28 18:23 /
在采集ADC 数据时,我需要尽可能用最短的时间确定ADC 数据中波形的起始和结束位置。由于一帧 ADC 数据有1000多个点,用软件查找速度比较慢,所以想到使用两个看门狗,设置不同的上下阈值,确定波形的起始和结束位置。现在的情况是 两路ADC 看门狗采集到的 位置有误差,一个单峰的波形有两个起始结束位置。

代码如下:
void ADC1_2_IRQHandler(void)
{

        NVIC_DisableIRQ(ADC1_2_IRQn);
        if((ADC_GetFlagStatus(ADC1, ADC_FLAG_AWD2) != RESET) )
       {

                wave[AWD2_count].wave_up_index = EPC_PIX_Number - DMA_GetCurrDataCounter(PixData_AD_DMAChannel); //触发看门狗的位置
                ADC_ITConfig(ADC1, ADC_IT_AWD2, DISABLE);//提前关闭中断,避免重复进入
               
                AWD2_count++;
                AWD2_count = AWD2_count % 4;

                ADC_ClearITPendingBit(ADC1, ADC_IT_AWD2);
                ADC_ITConfig(ADC1, ADC_IT_AWD3, ENABLE);//开启看门狗3
        }

        if((ADC_GetFlagStatus(ADC1, ADC_FLAG_AWD3) != RESET) )
        {
                NVIC_DisableIRQ(ADC1_2_IRQn);
                wave[AWD3_count].wave_down_index = EPC_PIX_Number - DMA_GetCurrDataCounter(PixData_AD_DMAChannel); //触发看门狗的位置
                AWD3_count++;
                AWD3_count = AWD3_count % 4;
                       
                ADC_ITConfig(ADC1, ADC_IT_AWD3, DISABLE);//提前关闭中断,避免重复进入
               
                ADC_ClearITPendingBit(ADC1, ADC_IT_AWD3);
                ADC_ITConfig(ADC1, ADC_IT_AWD2, ENABLE);
    }
NVIC_EnableIRQ(ADC1_2_IRQn);
}

收藏 评论5 发布时间:2020-4-28 18:23

举报

5个回答
wenyangzeng 回答时间:2020-4-28 21:12:10
STM32的ADC内核实际上只有1个,分时采样方式来转换超过1通道的数据。
无标题.png
大概应该采用这种方式:


无标题1.png



评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

李康1202 回答时间:2020-4-29 09:44:03
wenyangzeng 发表于 2020-4-28 21:12
STM32的ADC内核实际上只有1个,分时采样方式来转换超过1通道的数据。

大概应该采用这种方式:

大佬,冒昧地问一下,ADC的看门狗一般什么时候用
wenyangzeng 回答时间:2020-4-29 10:45:35
likang1202 发表于 2020-4-29 09:44
大佬,冒昧地问一下,ADC的看门狗一般什么时候用

ST手册里有介绍



无标题.png

Wayyt 回答时间:2020-4-29 14:55:07
wenyangzeng 发表于 2020-4-28 21:12
STM32的ADC内核实际上只有1个,分时采样方式来转换超过1通道的数据。

大概应该采用这种方式:

大佬,可以说的详细点吗? 这个和看门狗有什么关系呢?
wenyangzeng 回答时间:2020-4-29 17:23:15
蠢蠢的痒 发表于 2020-4-29 14:55
大佬,可以说的详细点吗? 这个和看门狗有什么关系呢?

楼主在一楼说明了要使用ADC看门狗功能的。所以图中在ADC采样值不在保护区就触发中断。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版