打印
[STM32F4]

捕获功能需要消抖吗

[复制链接]
917|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 | 只看该作者
怎么判断是信号还是抖动呢??

使用特权

评论回复
5
shashaa| | 2018-6-3 18:45 | 只看该作者
你的频率测量了吗??

使用特权

评论回复
6
hfdy01| | 2018-6-3 18:49 | 只看该作者
捕获功能就是正常的设计

使用特权

评论回复
7
CallReceiver| | 2018-6-3 18:52 | 只看该作者
楼主是怎么采集到抖动信号的?

使用特权

评论回复
8
boy1990| | 2018-6-3 18:54 | 只看该作者
如果是信号存在问题,可能需要滤波处理了。

使用特权

评论回复
9
sourceInsight| | 2018-6-3 18:57 | 只看该作者
如果是信号存在问题,可能需要滤波处理了。

使用特权

评论回复
10
zhouhuanの| | 2018-6-3 19:00 | 只看该作者

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

使用特权

评论回复
11
icecut| | 2018-6-4 08:07 | 只看该作者
信号发生器被认为是理想信号,不可能有抖动...更不可能频发抖动

使用特权

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

本版积分规则

424

主题

1616

帖子

1

粉丝