#define setRegBit(reg,bit) (reg |= reg##-##bit##-##MASK)

问题描述:

#define setRegBit(reg,bit) (reg |= reg##_##bit##_##MASK)
setRegBit(reg,bit)中并没有给出MASK值,该语句怎么执行呢?
1个回答 分类:综合 2014-12-02

问题解答:

我来补答
这个宏的操作是说:
用一个已知的宏给寄存器置位
##在宏里面仅起到连接的作用,给你举个例子
#define setRegBit(reg,bit) (reg |= reg##_##bit##_##MASK)
这是你定义的宏
肯定会有其他已知的宏,参考这个部分reg##_##bit##_##MASK
你在代码中找找,看有没有类似于
TIME_10_MASK 对应于reg##_##bit##_##MASK
reg是一个寄存器的名字,视你代码中的寄存器而定
bit是第几位
MASK 就是掩码的意思
比如我举的例子TIME_10_MASK 它应该是事先定义好的值
经过setRegBit 这个操作之后,reg就或上了一个掩码的值
 
 
展开全文阅读
剩余:2000