This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于用定时器捕获模式测方波频率的问题



用的是5529开发板,P2.0管脚输入方波。

思路是,用TA0定时一段时间,在这段时间内用TA1捕获上升沿个数。

定时器设置如下:

    P2SEL = BIT0;
    P1DIR |= 0x01;                            // P1.0 output
    TA1CTL = TASSEL_2 + MC_2 + TACLR + TAIE;  // SMCLK, contmode, clear TAR
    TA1CCTL1 = CM_1+CAP+SCS+CCIE+CCIS_0;          //输入上升沿捕获,CCI0A为捕获信号源

    TA0CCTL0 = CCIE;                          // CCR0 interrupt enabled
    TA0CCR0 = 20000;
    TA0CTL = TASSEL_1 + MC_1 + TACLR;         // ACLK, upmode, clear TAR

定时器中断中的内容如下:

#pragma vector=TIMER1_A1_VECTOR
__interrupt void TIMER1_A1_ISR(void)
{
	up+=1;              //脉冲计数
}

#pragma vector=TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR(void)
{
	P1OUT ^= 0x01;                            // Toggle P1.0
	frequency=((float)(up))/600;				//单位KHZ,600为指示灯亮灭周期的一半,单位Ms
	up=0;
}

这样哪里出了问题?那些寄存器TA0CTL0 TA1CLT1 中的0和1到底分别代表什么?初学者有点弄不清楚。