发 帖  
原厂入驻New
[问答]

430捕获功能需要消抖吗

1856
分享
最近做了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;
  }
}
0
2014-5-14 12:51:48   评论 分享淘帖 邀请回答
6个回答
2014-5-14 12:56:50 评论

举报

2014-5-14 14:43:13 评论

举报


在哪里加延时合适,请指点一下
2014-5-14 15:38:33 评论

举报

2014-8-7 22:18:28 评论

举报


好贴,感谢分享,最喜欢这样的帖子,这样的楼主了。交流是学习的第一步。
既获得了经验,又获得了知识   极好,特别喜欢。
2014-8-8 11:19:06 评论

举报

2016-8-12 15:27:49 评论

举报

只有小组成员才能发言,加入小组>>

1405个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表