按位或运算(启用通道)
按位或运算(|=
)用于启用选择的通道,因为它可以将特定位设置为1,而不改变其他位的值。
示例: 假设 R8_PWM_OUT_EN
当前值是 0x0A
(二进制 00001010
),我们要启用通道2(对应的二进制掩码是 0x04
,即 00000100
)。
按位或运算:
结果是 R8_PWM_OUT_EN
变为 0x0E
(二进制 00001110
)。通道2被启用,同时其他位保持不变。
按位与运算(禁用通道)
按位与运算(&=
)与一个取反后的掩码结合使用,用于禁用选择的通道,因为它可以将特定位设置为0,而不改变其他位的值。
示例: 假设 R8_PWM_OUT_EN
当前值是 0x0F
(二进制 00001111
),我们要禁用通道2(对应的二进制掩码是 0x04
,即 00000100
)。
首先,我们取反通道2的掩码:
然后,按位与运算:
按位与运算:
结果是 R8_PWM_OUT_EN
变为 0x0B
(二进制 00001011
)。通道2被禁用,同时其他位保持不变。