TI中文支持网
TI专业的中文技术问题搜集分享网站

初学者关于寄存器加法运算的疑问

有几个例子:

1. BCSCTL2 = SELM_3 + DIVM_2 + SELS; 这个说明SELM选10,DIVM选01(/2),SELS选0

这样的解释正确吗?

2. P1DIR = ZERO_CROSSING_OUT + SEGMENT_OUT; (设置ZERO_CROSSING_OUT为Bit6, 设置SEGMENT_OUT为Bit0)

那这个该怎么解释呢?

3. DCOCLK =  0x60 + 0x00;

是否就等于0x60?

若能解答真的很谢谢,卡了很久了

Carter Liu:

这些个加法,并不是你说的寄存器的加法运算,而是普通的无符号数加法运算后对特殊功能寄存器进行赋值。

1. SELM_3 、 DIVM_2 、 SELS是宏定义,你找找它代表什么(应该是在头文件里面), 加在一起赋值给寄存器后看看对应的寄存器各个位处于什么状态;

2. ZERO_CROSSING_OUT 、 SEGMENT_OUT也是宏定义,同上解释;

3.是的,不需怀疑。

Haiqi Bian:

回复 Carter Liu:

我具体说一下过程,你看看我说得对不对:

1,BCSCTL2 = SELM_3 + DIVM_2 + SELS

SELMx位取10(XT2CLK when XT2 oscillator present on-chip. LFXT1CLK or VLOCLK when XT2 oscillator not present on-chip)

DIVMx位取01(/2)

SELS位0(DCOCLK)

所以最后BCSCTL2就是:10010000

 

2,ZERO_CROSSING_OUT和SEGMENT_OUT都是在头文件里自己定义的,分别是Bit6和Bit5

所以最后P1DIR就是:00(Z_C_O)(S_O)00000

 

你看看我这样做是不是就对了

很感谢啊!

Haiqi Bian:

回复 Carter Liu:

我具体说一下过程,你看看我说得对不对:

1,BCSCTL2 = SELM_3 + DIVM_2 + SELS

SELMx位取10(XT2CLK when XT2 oscillator present on-chip. LFXT1CLK or VLOCLK when XT2 oscillator not present on-chip)

DIVMx位取01(/2)

SELS位0(DCOCLK)

所以最后BCSCTL2就是:10010000

 

2,ZERO_CROSSING_OUT和SEGMENT_OUT都是在头文件里自己定义的,分别是Bit6和Bit5

所以最后P1DIR就是:00(Z_C_O)(S_O)00000

 

你看看我这样做是不是就对了

很感谢啊!

Haiqi Bian:

回复 Carter Liu:

啊呀,明白了!十分感谢!十分感谢!

赞(0)
未经允许不得转载:TI中文支持网 » 初学者关于寄存器加法运算的疑问
分享到: 更多 (0)