1

radiotimer.c中的第 50 - 69行表示一个名为“radiotimer_start()”的函数。

如果我理解正确的话,这个函数是为MSP430 x26x硬件编写的。

在抽象层面上,这个函数启动了一个(我相信)定期执行的计时器(传入的参数)。但我完全无法理解这是如何工作的。

我想知道社区中的一位专家是否可以向我解释此功能的每一行中发生了什么。

例如在第 61 行:

TACCTL2  =  CAP+SCS+CCIS1+CM_1;

为什么要添加这么多值,什么是“捕获模式”?

老实说,这整个功能对我来说毫无意义。

如果社区中的一位专家至少可以阐明如何弄清楚这些代码行中的任何一个在做什么,并可能将其与计时器的启动方式联系起来,我将不胜感激。

4

1 回答 1

4

该寄存器只是在其中设置了一堆位。在这种情况下,+ 本质上是 OR。该语句可以重写为:

TACCTL2  =  CAP | SCS | CCIS1 | CM_1;

每个#define(CAP、SCS、CCIS1 和 CM_1)的信息应该在您正在使用的库中。他们设置的位显示在您链接的文档的第 372 页上。

例如 CM_1 表示在上升沿捕获。

于 2013-08-19T20:01:57.097 回答