예제 #1
0
 private void I2CStart()
 {
     // start signal = pull sda down while scl is high
     _sda.On();
     I2CSleep();
     _scl.On();
     I2CSleep();
     _sda.Off();
     I2CSleep();
     _scl.Off();
     I2CSleep();
 }
예제 #2
0
        /// <summary>
        /// This is the bit that actually does the bit banging to the chip
        /// </summary>
        private void SendAllValues()
        {
            _registerClockPin.Off();

            foreach (var b in _values.Reverse())
            {
                _signalClockPin.Off();
                if (b)
                {
                    _signalPin.On();
                }
                else
                {
                    _signalPin.Off();
                }
                _signalClockPin.On();
            }

            _registerClockPin.On();
            _registerClockPin.Off();

            _outputEnabledPin.Off(); // low = enabled, ensure that the output is actually enabled
        }