C 中 MSP430FR6989 的定时功能

Timing functions on the MSP430FR6989 in C

对于一个项目,我想计算一个函数需要多长时间。为此,我正在考虑使用 TimerA TA0 和捕获。但是,在查看文档后,我想知道是否可以使用内部 "message" 捕获计时器。在数据表中(http://www.ti.com/lit/ds/symlink/msp430fr6989.pdf 第 87 页,table 在页面底部)我不太清楚如何做到这一点。它说明了可以使用的端口引脚,但我(显然)对此不感兴趣。 因此,我在想我是否能够写入 TAxIV regitser,自己设置中断标志,但我绝对不确定它是否会起作用(我真的不这么认为,但我不知道为什么), 我可以用它来捕捉计时器。

我也已经看过示例代码,但是他们使用 ACLK 作为输入信号。所以这也没有多大用处。

在此先致以亲切的问候和感谢

如用户指南中的Timer_A框图(图25-1)所示,捕获信号必须来自四个捕获输入之一。

最后两个输入始终连接到 GND 和 VCC,因此您可以通过在这两个输入之间切换来手动触发捕获(参见第 25.2.4.1.1 节) .

答案是(感谢CL。,见上文,谁给出了答案):

用于初始化:

TA0CCTL1 = CM_3 | CCIS_1 | SCS | CAP; // could put in interrupt here
TA0CTL = TASSEL__SMCLK | MC__CONTINUOUS; // setting the timer up with the SMCLK

和用法,意思是捕获计时器:

TA0CCTL1 ^= CCIS0 // TA0CCR1 = TA0R, toggling the CCIS0 bit to switch between Vcc and GND

然后只读出捕获寄存器。

这个回答是为了方便阅读,完整的回答请看我和CL的对话。以上,谁给了我答案