[STM32F4]

捕获功能需要消抖吗

[复制链接]
874|10
手机看帖
扫描二维码
随时随地手机跟帖
feiqi1|  楼主 | 2018-6-3 18:22 | 显示全部楼层 |阅读模式
最近想用计算一个下降沿脉冲的时间间隔,发现能捕获到但是每来一个下降沿的时候,捕获到多个是什么原因啊,用信号发生器给了一个1s周期的方波,采集到情况是每秒采集到2个,不知道哪里有问题

unsigned char overflow,value;
void main (void)
{
WDTCTL = WDTPW+WDTHOLD;                    //关闭看门狗定时器
P1DIR = BIT0+BIT4;                         //设置P1.0方向为输出
P1SEL = BIT2;                              //设置P1.2端口为功能模块使用
TACTL = TASSEL0+TACLR+TAIE+MC_2;            //定时器A时钟信号选择ACLK,同时设置定时器A计数模式为连续增计模式
CCTL1 = CM_2+SCS+CAP+CCIE;                  //下降沿捕获,CCI0A为捕获信号源
_EINT();                                   //中断允许
while(1);                                  //LOOP
}
#pragma vector=TIMERA1_VECTOR               //定时器A中断处理
__interrupt void timer_a(void)
{
switch(TAIV)                               //向量查询
  { case 2:                                 //捕获中断
      
        if (CCTL1&CM1)                  //下降沿
        {  
           value++
       }   
       break;
    case 10:                                //定时器溢出中断
       overflow++;
       break;                               //溢出计数加1
    default:break;
  }
}
androidbus| | 2018-6-3 18:32 | 显示全部楼层
建议加延时,比较保险。。

使用特权

评论回复
litengg| | 2018-6-3 18:39 | 显示全部楼层

这个最好通过一个延时进行处理下的比较准确的。

使用特权

评论回复
qiangweii| | 2018-6-3 18:43 | 显示全部楼层
怎么判断是信号还是抖动呢??

使用特权

评论回复
shashaa| | 2018-6-3 18:45 | 显示全部楼层
你的频率测量了吗??

使用特权

评论回复
hfdy01| | 2018-6-3 18:49 | 显示全部楼层
捕获功能就是正常的设计

使用特权

评论回复
CallReceiver| | 2018-6-3 18:52 | 显示全部楼层
楼主是怎么采集到抖动信号的?

使用特权

评论回复
boy1990| | 2018-6-3 18:54 | 显示全部楼层
如果是信号存在问题,可能需要滤波处理了。

使用特权

评论回复
sourceInsight| | 2018-6-3 18:57 | 显示全部楼层
如果是信号存在问题,可能需要滤波处理了。

使用特权

评论回复
zhouhuanの| | 2018-6-3 19:00 | 显示全部楼层

查看电源是否有波动。。。

使用特权

评论回复
icecut| | 2018-6-4 08:07 | 显示全部楼层
信号发生器被认为是理想信号,不可能有抖动...更不可能频发抖动

使用特权

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

本版积分规则

424

主题

1616

帖子

1

粉丝