打印

ADC采样后的周期数据如何找出最大或最小值?

[复制链接]
楼主: thefly
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
thefly|  楼主 | 2010-4-23 16:39 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
大家好,小弟最近又遇到新问题,一个通过ADC采样的周期信号,现在需要找到他的最值(拐点)并且在这一时刻触发一个中断,请问应采用何种思路来实现呢?十分感谢指点!!
沙发
thefly|  楼主 | 2010-4-23 17:20 | 显示全部楼层
请问这个比较器是要外接运放么?STM32的MCU有没有集成比较器功能的?

使用特权

评论回复
板凳
thefly|  楼主 | 2010-5-4 20:42 | 显示全部楼层
谢谢各位的指点,很受启发。我想在采样到最大值时在一GPIO管脚(如PB6)实时产生一个脉冲,这个脉冲要能在示波器看到,如何实现?目前我只能改变管脚整体的电平,无法产生多个脉冲的形状。关于比较最值的方法,因为采样波并不十分纯净,相当于在寻找包络的最值,所以单纯拿采样值和上一次比较不能满足要求,各位能否再给点建议十分感谢

使用特权

评论回复
地板
thefly|  楼主 | 2010-5-6 18:05 | 显示全部楼层
我现在有个疑问,如何能在GPIO的管脚上给一个脉冲呢?又如何设置脉冲的长度?

使用特权

评论回复
5
thefly|  楼主 | 2010-5-6 18:25 | 显示全部楼层
本帖最后由 thefly 于 2010-5-6 20:37 编辑

老大,这样输出只能设置管脚电平一会高一会低,无法显示成脉冲的信号。要怎样才能类似这样___-___-___-___-___

使用特权

评论回复
6
thefly|  楼主 | 2010-5-10 16:11 | 显示全部楼层
香版大大,我现在的问题是如何能找到波峰,如果能找到波峰就可以触发脉冲,请问有类似的例程吗?感谢!!

使用特权

评论回复
7
thefly|  楼主 | 2010-5-10 17:08 | 显示全部楼层
9楼的原理可以理解,可是程序不知如何入手,我这样拿(ACD1->DR)直接比较可以么?
u16 Max=0;
if ((ADC1->DR) > Max)
      {
     Max = (ADC1->DR);
      }
  else{
      GPIO_WriteBit(GPIOB, GPIO_Pin_6, Bit_SET);
      delay(10);
      GPIO_WriteBit(GPIOB, GPIO_Pin_6, Bit_RESET);
试过了只能没有规律的产生个把脉冲而且不是在波峰位置,老大帮帮我把小弟实在是新手

使用特权

评论回复
8
thefly|  楼主 | 2010-5-10 19:38 | 显示全部楼层
楼上老大说得很对,采样后确实有毛刺,如果通过软件滤波有什么办法吗?比如我想限制在一个临近波峰的区间内采样,设置一个稍大于波动的阀值,但不知能否实现

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

24

帖子

1

粉丝