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.

[参考译文] MSP430F5438A:如何编写捕获程序

Guru**** 2538930 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1082675/msp430f5438a-how-to-write-capture-program

部件号:MSP430F5438A

大家好,团队

客户提出的问题可能需要您的帮助:

void TimrA1Init_captrue (void)

未定义
   TA0CTL = TASEL0+TASCL+TAIE+MC1;//时钟信号选择 MCLK,计数模式为连续升温模式
   TA0CCTL1 = CM1+SCS+CAP+CCIE;//输入落边捕获,CCI1A 是捕获信号源
   P1SEL |=BIT2;//将 P1.2端口设置为功能模块 CCI1A 输入捕获
}

无符号 int TimeGap=0;
#pragma vector=TIMER0_A1_vector //计时器 A 中断处理
中断 void timer_a (void)

   交换机(TA0IV)//矢量查询
   {
     案例2:
        TimeGap=TA0R;//获取 脉冲间隔
        TA0R=0;

        休息;
     默认值:
        休息;
   }
}

问: TimeGap=TA0R;//获取脉冲间隔,这是否正确? 或者以下陈述是正确的:TimeGap = TA1CCR0;

请帮您检查此案例? 谢谢。

此致,

樱桃

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    正确的表述是:

    TimeGap = TA0CCR1;

    使用 MC1=MC_2 (连续)时,TA0R 将保持计数,因此“不会太远”,具体取决于软件延迟,但捕获的值在 CCR 中。