打印

定时器A的捕捉

[复制链接]
1267|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yytpy2008|  楼主 | 2012-7-27 19:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
别人的一个例子,说是理论值是976。是怎么算的?求教
微控论坛原创主贴 作者:fangth
Microcontrol CODE

/*****************************************************************
//
功能:利用定时器A的捕捉能测量脉冲信号的脉宽
//
//
//                MSP430F449
//             -----------------
//         /|\|              XIN|-
//          | |                 | 32kHz
//          --|RST          XOUT|-
//            |                 |
//            |        P1.5/ACLK|---+
//            |                 |   |
//            |         P2.0/TA2|<--+
//            |                 |
//            |                 |
//
说明:ACLK要进行8分频(4K),并将其作为外部的要捕获的脉冲;
//MCLK=SMCLK=8M;
*****************************************************************/
#include  <msp430x44x.h>
int pwm_start,pwm_end,pwm_wide=0;

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  P1DIR = 0x20;                   //  P1.5
输出
  P1SEL = 0x20;              // P1.5
输出ACLK
  
  P2SEL|=BIT0;                              //P2.0 CCI2A
  
  SCFI0 |= FN_4;
  SCFQCTL = 121;                   // (121+1) ×32768 *2= 7.99Mhz
  FLL_CTL0=DCOPLUS+OSCCAP1;       //MCLK=SMCLK=8M
  
  FLL_CTL1 |= FLL_DIV_8;                         //ACLK
要进行8分频,ACLK=4K
  
  
  TACCTL2 =CAP+CM_3+CCIS_0+SCS+CCIE;  //
捕获模式,上升和下降都捕获,选择CCI2A,同步,捕获中断开         
                                      //Capture input select: 0 - CCI2A
  TACTL = TASSEL_2 + MC_2 ;    //SMCLK=8M,L
连续计数模式
  _EINT();                 //
开总中断
  LPM0;
  _NOP();
  pwm_wide=pwm_end-pwm_start;

  while(1);
}

// Timer_A3 Interrupt Vector (TAIV) handler
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A(void)
{
  
  switch(TAIV)
{case 2:break;
  case 4:
     if(TACCTL2 & CCI)
        pwm_start=CCR2;   
     else
        pwm_end=CCR2;
     //pwm_wide=pwm_end-pwm_start;
     break;
  case 10:
     break;
  }
  LPM0_EXIT;
}

检验方法:
在调试环境下,在watch 窗口观察pwm_end和pwm_start,然后相减!
我计算了一下。在所给的例子中理论值pwm_end-pwm_start=976
通过观察的结果是978,还是有点误差,可能是由于晶振的值原因,计算上的舍入有点偏差。

相关帖子

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

本版积分规则

16

主题

75

帖子

1

粉丝