public static void ShiftOut( IDigitalWriteRead dwr, int dataPin, int clockPin, int val, BitOrder bitOrder = BitOrder.MSBFIRST) { int i; System.Diagnostics.Debug.WriteLine("Shift {0}", val); for (i = 0; i < 8; i++) { if (bitOrder == BitOrder.LSBFIRST) { var a = (val & (1 << i)); dwr.DigitalWrite(dataPin, Nusbio.ConvertToPinState(a)); } else { var b = (val & (1 << (7 - i))); dwr.DigitalWrite(dataPin, Nusbio.ConvertToPinState(b)); } ClockIt(dwr, clockPin); } }
public static void ShiftOutDataClockOptimized(IDigitalWriteRead dwr, int dataPin, int clockPin, int val, BitOrder bitOrder = BitOrder.MSBFIRST) { int i; for (i = 0; i < 8; i++) { if (bitOrder == BitOrder.LSBFIRST) { var a = (val & (1 << i)); dwr.DigitalWrite(dataPin, Nusbio.ConvertToPinState(a)); } else { var b = (val & (1 << (7 - i))); dwr.DigitalWrite(dataPin, Nusbio.ConvertToPinState(b)); } ClockIt(dwr, clockPin); } }
private static void ShiftOut(Nusbio nusbio, NusbioGpio dataPin, NusbioGpio clockPin, int bitOrder, int val) { int i; for (i = 0; i < 8; i++) { if (bitOrder == LSBFIRST) { var a = (val & (1 << i)); nusbio.GPIOS[dataPin].DigitalWrite(Nusbio.ConvertToPinState(a)); } else { var b = (val & (1 << (7 - i))); nusbio.GPIOS[dataPin].DigitalWrite(Nusbio.ConvertToPinState(b)); } nusbio.GPIOS[clockPin].DigitalWrite(PinState.High); nusbio.GPIOS[clockPin].DigitalWrite(PinState.Low); } }