430捕获功能需要消抖吗

2019-07-15 16:04发布

最近做了msp430定时捕获的实验,想用计算一个下降沿脉冲的时间间隔,发现能捕获到但是每来一个下降沿的时候,捕获到多个是什么原因啊,用信号发生器给了一个1s周期的方波,采集到情况是每秒采集到2个,不知道哪里有问题
#include <msp430x14x.h>
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;
  }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
164908060
1楼-- · 2019-07-15 19:21
 精彩回答 2  元偷偷看……
app1234
2楼-- · 2019-07-15 20:06
謝謝!!!!!!!!!!!!!!!!!
ccking
3楼-- · 2019-07-16 01:48
164908060 发表于 2014-5-14 12:56
建议加延时

在哪里加延时合适,请指点一下
L博士
4楼-- · 2019-07-16 05:13
厉害哦~~~~~
vavsz003
5楼-- · 2019-07-16 07:37

好贴,感谢分享,最喜欢这样的帖子,这样的楼主了。交流是学习的第一步。
既获得了经验,又获得了知识   极好,特别喜欢。
宇飞天
6楼-- · 2019-07-16 11:22
 精彩回答 2  元偷偷看……

一周热门 更多>