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; }