在MSP430F149中TBCTL表示定时器B的控制寄存器。MCx是该寄存器的第5-4位,是定时器B的工作模式控制位,表示定时器的工作方式。
在头文件中
#define MC_0 (0*0x10u) /* Timer A mode control: 0 - Stop */
这是一个宏定义,MC_0的值即为:0*0x10u,它是一个无符号乘法运算,结果就是为0,即MC_0的值实际为:0x00(因为这个值比较特殊,所以现用MC_2举例)如果是#define MC_2 (2*0x10u) ,则MC_2=0x20,二进制为:0010 0000,正好第5位为1。
TBCTL & MC_0 是TBCTL与MC_0按位相与的运算,其作用就是判断MCx(TBCTL第5位和第4位的值)是否为0。