#define setRegBit(reg,bit) (reg |= reg##_##bit##_##MASK) setRegBit(reg,bit)中并没有给出MASK值,该语句怎么执行呢?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/15 00:56:41
#define setRegBit(reg,bit) (reg |= reg##_##bit##_##MASK) setRegBit(reg,bit)中并没有给出MASK值,该语句怎么执行呢?

#define setRegBit(reg,bit) (reg |= reg##_##bit##_##MASK) setRegBit(reg,bit)中并没有给出MASK值,该语句怎么执行呢?
#define setRegBit(reg,bit) (reg |= reg##_##bit##_##MASK)
setRegBit(reg,bit)中并没有给出MASK值,该语句怎么执行呢?

#define setRegBit(reg,bit) (reg |= reg##_##bit##_##MASK) setRegBit(reg,bit)中并没有给出MASK值,该语句怎么执行呢?
这个宏的操作是说:
用一个已知的宏给寄存器置位
##在宏里面仅起到连接的作用,给你举个例子
#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就或上了一个掩码的值