打印

求一利用msp430测量脉冲周期的程序

[复制链接]
3247|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
创展和众|  楼主 | 2011-12-16 12:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
teabottle| | 2011-12-16 12:23 | 只看该作者
MSP430有些定时器有中断捕获功能,也可以单独自用可中断的IO,再加个定时器,定时计捕获的脉冲数来计算周期

使用特权

评论回复
板凳
wangjinlili| | 2011-12-16 12:29 | 只看该作者
使用中断

使用特权

评论回复
地板
tianm| | 2011-12-17 02:40 | 只看该作者
脉冲频率有多高

使用特权

评论回复
5
peter_zheng| | 2011-12-17 13:17 | 只看该作者
1# 创展和众
捕获源为P4.0,即CCI0A(也是CCI0B)
  TBCCTL0 =CM_2+SCS+CAP;           //下降沿捕获,同步捕获,工作在捕获模式
  TBCCTL0 =CCIE;                     //允许捕获比较模块提出中断请求
  TBCTL =ID_3;
  TBCTL =TBSSEL_2;                   //选择时钟MCLK
  TBCTL =TBCLR;                      //定时器清零,
  //定时器开始计数(连续计数模式0~0xFFFF)
  TBCTL =MC_2;   _EINT();  while(1);
} //―――――定时器TB的CCR0的中断:用于检测脉冲上升与下降沿――――
#pragma vector=TIMERB0_VECTOR        
__interrupt void TimerB0(void)
{
   if(TBCCTL0&CM1)                        //捕获到下降沿
     {
       TBCTL =TBCLR;
       TBCCTL0=(TBCCTL0&(~CM1)) CM0;    //改为上升沿捕获:CM1置零,CM0置一      }
   else if(TBCCTL0&CM0)                    //捕获到上升沿
     {
       width[i++]=TBCCR0;                  //记录下结束时间
       TBCCTL0=(TBCCTL0&(~CM0)) CM1;   //改为下降沿捕获:CM0置零,CM1置一
       if(i==10) i=0;

使用特权

评论回复
6
yszong| | 2011-12-17 17:27 | 只看该作者
1# 创展和众
捕获源为P4.0,即CCI0A(也是CCI0B)
  TBCCTL0 =CM_2+SCS+CAP;           //下降沿捕获,同步捕获,工作在捕获模式
  TBCCTL0 =CCIE;                     //允许捕获比较模块提出中断请求
  TBCTL =ID_3; ...
peter_zheng 发表于 2011-12-17 13:17
:dizzy:

使用特权

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

本版积分规则

0

主题

122

帖子

0

粉丝