private static void ShiftOut(IOutputPort dataPort, IOutputPort clockPort, BitOrder bitOrder, byte value) { // Lower Clock clockPort.Write(false); for (int i = 0; i < 8; i++) { byte mask; if (bitOrder == BitOrder.LSBFirst) mask = (byte)(1 << i); else mask = (byte)(1 << (7 - i)); dataPort.Write((value & mask) != 0); // Raise Clock clockPort.Write(true); // Raise Data to prevent IO conflict dataPort.Write(true); // Lower Clock clockPort.Write(false); } }
private static void PulseHigh(IOutputPort port) { port.Write(true); port.Write(false); }