[P]#include<msp430x14x.h>
#define uint unsigned int
#define uchar unsigned char
uint new_cap=0;
uint old_cap=0;
uint cap_diff=0;
uint diff_array[16];
uint capture_array[16];
uchar index=0;
uchar count=0;
void main()
{ volatile uint i; WDTCTL=WDTPW+WDTHOLD; BCSCTL1|=DIVA_3; P1DIR &=~BIT1;//捕获CCI0A输入 P1SEL |=BIT1; P2DIR|=BIT0;//ACLK输出 P2SEL|=BIT0; P5DIR|=BIT4; P5OUT|=BIT4;高电平 灯灭 5.4 口 [/P][P] TACTL|=TASSEL_2+MC_2; CCTL0|=CM_1+SCS+CCIS_0+CAP;//上升沿捕获 CCTL0 |=CCIE; _BIS_SR(LPM0_bits+GIE); [/P][P]}
#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA0()
{ new_cap=TACCR0; cap_diff=new_cap-old_cap; diff_array[index]=cap_diff; capture_array[index++]=new_cap; if(index==16) { index=0; P5OUT^=BIT4; } old_cap=new_cap; count++; if(count==32) { count=0; _NOP(); }
}[/P] |