按位运算符,使用哪一个

时间:2018-06-17 17:23:42

标签: c++ arduino

我有可能是一个愚蠢的问题,但我没有资源。 我正在构建一个简单的小对象,以了解如何使用移位寄存器,我希望能够使用移位寄存器作为数字输出/输入的扩展。

我喜欢像下面那样访问该对象 例如: R.digitalWrite(位编号,TrueOfFalse);

但问题是我需要记住每个输出的状态,因为当我要编辑一个引脚值时,所有的引脚都必须用pulse / clk写入移位寄存器

所以我将每个引脚的值存储在一个字节数组中(如果我有多个移位寄存器在线)

我的问题是,如果我已经打开了一个引脚,并且想要将其关闭

void ShiftRegister::DigitalWrite(unsigned int Bit, bool isOn){
 byte Tmp = B00000000;
 Tmp += isOn;
 Tmp << Bit%8;
 Output[Bit/8] |= Tmp;

 Write(Output[Bit/8]);
}

所以在这个例子中发生这种情况

0  0  1  1    operand1
0  1  0  1    operand2
----------
0  1  1  1    (operand1 | operand2) - returned result

我的两位不会0到

发布我的操作后,我意识到我的接缝就像我收到的结果不是预期的,我收到的是完全预期的,但寻找我应该使用的按位,或者当有点想要时如何继续是0

0 个答案:

没有答案