[应用相关] 每秒采集到2个

[复制链接]
677|15
 楼主| feiqi1 发表于 2020-4-26 19:59 | 显示全部楼层 |阅读模式
想用计算一个下降沿脉冲的时间间隔,发现能捕获到但是每来一个下降沿的时候,捕获到多个是什么原因啊,用信号发生器给了一个1s周期的方波,采集到情况是每秒采集到2个。。
androidbus 发表于 2020-4-26 20:06 | 显示全部楼层
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;
  }
}
litengg 发表于 2020-4-26 20:07 | 显示全部楼层
不知道在哪里加延时合适。。
litengg 发表于 2020-4-26 20:11 | 显示全部楼层
这个最好通过一个延时进行处理下的比较准确的。。。
qiangweii 发表于 2020-4-26 20:11 | 显示全部楼层
这个最好通过一个延时进行处理下的比较准确的。。
shashaa 发表于 2020-4-26 20:20 | 显示全部楼层
怎么判断是信号还是抖动呢?
xia00 发表于 2020-4-26 20:21 | 显示全部楼层
使用示波器测量一下信号。
hfdy01 发表于 2020-4-26 20:24 | 显示全部楼层
楼主是怎么采集到抖动信号的?
CallReceiver 发表于 2020-4-26 20:31 | 显示全部楼层
如果是信号存在问题,可能需要滤波处理了。。
boy1990 发表于 2020-4-26 20:31 | 显示全部楼层
如果是信号存在问题,可能需要滤波处理了。
sourceInsight 发表于 2020-4-26 20:37 | 显示全部楼层
如果是信号存在问题,可能需要滤波处理了。
bbapple 发表于 2020-4-26 20:38 | 显示全部楼层
消抖有硬件消抖和软件消抖
handleMessage 发表于 2020-4-26 20:43 | 显示全部楼层
你的硬件电路怎么设计的?
是不是周期太短了?
zhouhuanの 发表于 2020-4-26 20:43 | 显示全部楼层
有可能是硬件电路的造成的。
wanglaojii 发表于 2020-4-26 20:47 | 显示全部楼层
一般都是参考电压有影响,先滤波一下。
laozhongyi 发表于 2020-4-26 20:48 | 显示全部楼层
硬件消抖通过电路延时来实现。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

424

主题

1616

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部