我有可能是一个愚蠢的问题,但我没有资源。 我正在构建一个简单的小对象,以了解如何使用移位寄存器,我希望能够使用移位寄存器作为数字输出/输入的扩展。
我喜欢像下面那样访问该对象 例如: 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