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

MSP430F5438A: 定时器的计数时钟选用外部时钟的问题

Part Number:MSP430F5438A

当选用定时器B,来做脉冲计数的时候,选用P4.7作为时钟输入,P4.0的输入方波作为捕捉信号

请问:

TBSSEL=0时,选用了外部时钟输入, 计数的时候,是根据外部信号的上升沿计数,还是下降沿计数?

谢谢

user5125120:

定时器计数,是根据输入脉冲的上升沿计数,还是下降沿计数?或者是只要有跳变就计数?在哪里可以配置这些参数呢?谢谢

,

Cherry Zhou:

您好我们已收到您的问题并升级到英文论坛,如有答复将尽快回复您。谢谢!

,

Cherry Zhou:

user5125120 说:

计数的时候,是根据外部信号的上升沿计数,还是下降沿计数?

您好,是根据上升沿计数的,您可以参考 User Guide (SLAU208Q) Fig 18-3。

,

user5125120:

我测试的结果,证明不是根据外部信号的上升沿计数,结论是:计数开始后,第一跳变沿不计数,第二个跳变沿开始计数,所以,如果第一个跳变沿是上升沿,那么以后的计数就都是下降沿计数。如果第一个跳变沿是下降沿,那么后面的计数,都是上升沿计数,请核实上面的结论,我是这么检测到的,谢谢

,

Cherry Zhou:

您好,工程师使用 F5529 (没有 F5438A) 和 TA1CLK (无法访问 P7.7/TB0CLK) 尝试了类似的实验。 结果发现计数器在上升沿上计数。

具体来说,程序在 P1.2 上生成一个单个上升沿,该沿通过接线连接到配置为 TA1CLK 的 P1.6 ,而 TA1R 计数为 1 (LED 灯)。

F5529/F5438A 或 TA1/TB0 在这方面可能会有所差异,但您的结果更有可能受到您代码的影响。

///
#include <msp430.h>
#define HZ1000000UL
int main(void)
{WDTCTL = WDTPW | WDTHOLD;// stop watchdog timerP1OUT&= ~BIT0;// Launchpad LED, initially offP1DIR|= BIT0;//P1.2 is an ordinary GPIO, patched to P1.6P1OUT&= ~BIT2;// P1.2 output, initially lowP1DIR|= BIT2;//(patched to P1.6)//P1.6 is TA1CLK, fed from P1.2P1SEL|= BIT6;// P1.6 as TA1CLKTA1CTL = TASSEL_0 | ID_0 | MC_2 | TACLR; // TA1CLK/1, Continuous [,clear]__delay_cycles(HZ/2);// Dawdle for a half-secondP1OUT|= BIT2;// Rising edge to TA1CLK__delay_cycles(10);// Allow for wire delayif (TA1R != 0u)// If it ticked,P1OUT |= BIT0;//light LEDwhile (1){LPM0;}/*NOTREACHED*/return 0;
}

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F5438A: 定时器的计数时钟选用外部时钟的问题
分享到: 更多 (0)