作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/04/28 23:06:51
#define setRegBit(reg,bit) (reg |= reg##_##bit##_##MASK)
setRegBit(reg,bit)中并没有给出MASK值,该语句怎么执行呢?
#define setRegBit(reg,bit) (reg |= 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就或上了一个掩码的值