radiotimer.c中的第50-69行代表一个名为“radiotimer_start()”的函数。
如果我理解正确,这个函数是为MSP430 x26x硬件编写的。
在抽象级别,此函数启动一个定时器(我相信)定期执行(传入的参数)。但我根本无法理解这是如何运作的。
我想知道社区的一位专家是否可以向我解释这个功能的每一行是怎么回事。
例如第61行:
TACCTL2 = CAP+SCS+CCIS1+CM_1;
为什么要添加这么多的值,什么是“捕获模式”?
说实话,这整个功能对我来说毫无意义。
如果社区中的一位专家至少可以了解如何弄清楚这些代码行正在做什么,并且可能将其与计时器的启动方式联系起来,我将不胜感激。
答案 0 :(得分:4)
该寄存器只是设置了一堆位。在这种情况下,+本质上是一个OR。该声明可以改写为:
TACCTL2 = CAP | SCS | CCIS1 | CM_1;
每个#define(CAP,SCS,CCIS1和CM_1)的信息应该在您正在使用的库中。他们设置的位显示在您链接的文档的第372页。
例如,CM_1表示在上升沿捕获。