예제 #1
0
        public NativeSpi(Socket socket, Socket.SocketInterfaces.SpiConfiguration configuration, Socket.SocketInterfaces.SpiSharing sharing, Cpu.Pin chipSelectPin, Module module, Microsoft.SPOT.Hardware.SPI.SPI_module spiModule)
        {
            _hardwareInstance = GetAndUseInstance(socket, sharing, module, spiModule);
            _chipSelectPin = chipSelectPin;
            _configuration = ToNativeConfiguration(configuration, chipSelectPin, spiModule);

            if (_hardwareInstance.Interface == null && _configuration != null)
                _hardwareInstance.Interface = new Microsoft.SPOT.Hardware.SPI(_configuration);
        }
예제 #2
0
        public NativeSpi(Socket socket, SpiConfiguration configuration, SpiSharing sharing, Hardware.Cpu.Pin chipSelectPin, Hardware.Cpu.Pin busyPin, Module module, Hardware.SPI.SPI_module spiModule)
        {
            _hardwareInstance = GetAndUseInstance(socket, sharing, module, spiModule);
            _chipSelectPin = chipSelectPin;
            _busyPin = busyPin;
            _configuration = ToNativeConfiguration(configuration, chipSelectPin, busyPin, spiModule);

            if (_hardwareInstance.Interface == null && _configuration != null)
                _hardwareInstance.Interface = new Hardware.SPI(_configuration);
        }
예제 #3
0
        public NativeSpi(Socket socket, Socket.SocketInterfaces.SpiConfiguration configuration, Socket.SocketInterfaces.SpiSharing sharing, Cpu.Pin chipSelectPin, Module module, Microsoft.SPOT.Hardware.SPI.SPI_module spiModule)
        {
            _hardwareInstance = GetAndUseInstance(socket, sharing, module, spiModule);
            _chipSelectPin    = chipSelectPin;
            _configuration    = ToNativeConfiguration(configuration, chipSelectPin, spiModule);

            if (_hardwareInstance.Interface == null && _configuration != null)
            {
                _hardwareInstance.Interface = new Microsoft.SPOT.Hardware.SPI(_configuration);
            }
        }
        public NativeSpi(Socket socket, SpiConfiguration configuration, SpiSharing sharing, Hardware.Cpu.Pin chipSelectPin, Hardware.Cpu.Pin busyPin, Module module, Hardware.SPI.SPI_module spiModule)
        {
            _hardwareInstance = GetAndUseInstance(socket, sharing, module, spiModule);
            _chipSelectPin    = chipSelectPin;
            _busyPin          = busyPin;
            _configuration    = ToNativeConfiguration(configuration, chipSelectPin, busyPin, spiModule);

            if (_hardwareInstance.Interface == null && _configuration != null)
            {
                _hardwareInstance.Interface = new Hardware.SPI(_configuration);
            }
        }
        private static SocketInterfaces.SpiConfiguration ToInterfaceConfiguration(Hardware.SPI.Configuration config)
        {
            if (config == null)
            {
                return(null);
            }

            return(new SocketInterfaces.SpiConfiguration(
                       config.ChipSelect_ActiveState,
                       config.ChipSelect_SetupTime,
                       config.ChipSelect_HoldTime,
                       config.Clock_IdleState,
                       config.Clock_Edge,
                       config.Clock_RateKHz,
                       config.BusyPin_ActiveState));
        }
예제 #6
0
 /// <summary>
 /// Changes the configuration of this <see cref="SPI"/> interface.
 /// </summary>
 /// <param name="conf">The configuration to change to.</param>
 public void ChangeSpiConfig(Configuration conf)
 {
     lock (this.spiInstance)
     {
         this.spiConfig = new Microsoft.SPOT.Hardware.SPI.Configuration(
             (Cpu.Pin) this.spiConfig.ChipSelect_Port,
             conf.ChipSelectActiveState,
             conf.ChipSelectSetupTime,
             conf.ChipSelectHoldTime,
             conf.ClockIdleState,
             conf.ClockEdge,
             conf.ClockRateKHz,
             this.SPIModule);
         this.spiInstance.LastSPI = null;
     }
 }
예제 #7
0
        public MatrixDisplay24x16(Microsoft.SPOT.Hardware.SPI.Configuration spiConfig)
        {
            this._spiConfig = spiConfig;

            _mainBuffer = new ushort[26];
            _mainBuffer2 = new ushort[1];

            InitWriteBuffer();

            // Init HT1632 display
            using (Microsoft.SPOT.Hardware.SPI spi = new SPI(_spiConfig))
            {
                WriteCommand(spi, HT1632_CMD.SYSDIS);
                WriteCommand(spi, HT1632_CMD.SYSON);
                WriteCommand(spi, HT1632_CMD.COMS11);
                WriteCommand(spi, HT1632_CMD.LEDON);
                WriteCommand(spi, HT1632_CMD.BLOFF);
                WriteCommand(spi, HT1632_CMD.PWM + 15);
            }

            Clear(true);
        }
예제 #8
0
 /// <summary>
 /// Changes the configuration of this <see cref="SPI"/> interface.
 /// </summary>
 /// <param name="conf">The configuration to change to.</param>
 public void ChangeSpiConfig(Configuration conf)
 {
     lock (this.spiInstance)
     {
         this.spiConfig = new Microsoft.SPOT.Hardware.SPI.Configuration(
             (Cpu.Pin)this.spiConfig.ChipSelect_Port,
             conf.ChipSelectActiveState,
             conf.ChipSelectSetupTime,
             conf.ChipSelectHoldTime,
             conf.ClockIdleState,
             conf.ClockEdge,
             conf.ClockRateKHz,
             this.SPIModule);
         this.spiInstance.LastSPI = null;
     }
 }