コード例 #1
0
 /// <summary>
 /// Invia i bit in uscita
 /// </summary>
 public void OutBits()
 {
     for (int i = (bit.Length - 1); i >= 0; i--)
     {
         if (bit[i])
         {
             _pinData.Write(GpioPinValue.High);
         }
         else
         {
             _pinData.Write(GpioPinValue.Low);
         }
         //Wait();
         _pinClock.Write(GpioPinValue.High);
         //Wait();
         _pinClock.Write(GpioPinValue.Low);
         //Wait();
     }
     _pinLatch.Write(GpioPinValue.High);
     //Wait();
     _pinLatch.Write(GpioPinValue.Low);
 }
コード例 #2
0
        /// <summary>
        /// Inizializzazione
        /// </summary>
        /// <param name="bits">Numero di bit: 8 X Numero di integrati 74HC595</param>
        /// <param name="dataPin">Porta linea dati DS Pin 14 del 74HC595</param>
        /// <param name="clockPin">Porta linea clock SH_CP Pin 11 del 74HC595</param>
        /// <param name="latchPin">Porta linea latch ST_CP Pin 12 del 74HC595</param>
        public OutShiftRegister(int numBits, int dataPin, int clockPin, int latchPin)
        {
            if (numBits <= 0)
            {
                throw new IndexOutOfRangeException("ShiftRegister: numero di bit < 0");
            }

            _pinData  = new DigitalIO(dataPin, GpioPinDriveMode.Output);
            _pinClock = new DigitalIO(clockPin, GpioPinDriveMode.Output);
            _pinLatch = new DigitalIO(latchPin, GpioPinDriveMode.Output);

            _pinData.Write(GpioPinValue.Low);
            _pinClock.Write(GpioPinValue.Low);
            _pinLatch.Write(GpioPinValue.Low);

            bit = new bool[numBits];

            OutResetBits();
        }