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

使用430捕获脉宽

我在使用msp430g2553的time_A0的连续模式下,我把TACCTL0做为捕获模式用,捕获一个矩形波的上升沿并读取中断时TAR的值,读不到正确的值,我又换了读TACCR0中的值,也读不出来,我参考一些其他类型的430关于这方面的程序,都差不多,为什么我的不行呢,求解?

Triton Zhang:

请详细描述下“读不到正确的值”和“读不除TACCR0的值“

检查下你的初始化配置是否正确。

Hardy Hu:

最好是把TA初始化与操作的那一段代码发上来看看

Peter_Zheng:

首先配置timer 捕获模式

TA1CTL = TASSEL_2 + MC_2;// SMCLK, contmode

TA1CCTL0 = CM_3 + CCIS_1 + SCS + CAP + CCIE; // Interrupt at both edges

然后通过中断读取ccr0数值

#pragma vector=TIMER1_A0_VECTOR

__interrupt void Timer_A (void)

anger0925:

回复 Peter_Zheng:

请问你是读出来的值不对,是怎么判断的?还有你输入的方波的频率是多大?如果输入频率很高,而系统时钟频率跟不上,也会出错。还有救是你在中断处理时出错。一般处理的方法是在一定时间内统计脉冲个数,这样计算出来一般不会出错。

Hardy Hu:

读到TAR的值是不正确还是不是按照自己的想法的结果?

赞(0)
未经允许不得转载:TI中文支持网 » 使用430捕获脉宽
分享到: 更多 (0)