TI中文支持网
TI专业的中文技术问题搜集分享网站

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

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

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

定时器设置如下:

P2SEL = BIT0;P1DIR |= 0x01;// P1.0 outputTA1CTL = TASSEL_2 + MC_2 + TACLR + TAIE;  // SMCLK, contmode, clear TARTA1CCTL1 = CM_1+CAP+SCS+CCIE+CCIS_0;//输入上升沿捕获,CCI0A为捕获信号源TA0CCTL0 = CCIE;// CCR0 interrupt enabledTA0CCR0 = 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到底分别代表什么?初学者有点弄不清楚。

step by step:

你好楼主,

     你出问题的现象是什么?不能正常进入中断?

     你是指TA0CCTL0里的0代表的意思吗?他代表的是不同的CCR即计时/比较单元

xinyi chen:

回复 step by step:

嗯,脉冲计数那个中断进不了。指示灯定时反转中断能进的。

kqian0327:

回复 xinyi chen:

你好,

下面链接是关于定时器作为波或模块的一个例子,应该对你的问题有帮助:

http://www.deyisupport.com/question_answer/microcontrollers/msp430/f/55/p/61736/138248.aspx#138248

xinyi chen:

回复 kqian0327:

谢谢,问题解决了

kqian0327:

回复 xinyi chen:

你好,

如果我们有帮到你解决问题,请结掉该贴。

谢谢配合。

赞(0)
未经允许不得转载:TI中文支持网 » 关于用定时器捕获模式测方波频率的问题
分享到: 更多 (0)