Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
            }
        }