Exemple #1
0
        // WriteGlobalRegister sets the value of one of our network chip's internal registers
        void WriteGlobalRegister(AX88796CRegister registerAddress, UInt16 value)
        {
            lock (_spiLock)
            {
                // WriteBuffer byte 0 [Opcode]: WriteGlobalRegister
                _writeGlobalRegister_WriteBuffer[0] = (byte)AX88796COpcode.WriteGlobalRegister;
                // WriteBuffer byte 1 [Address]: register address
                _writeGlobalRegister_WriteBuffer[1] = (byte)registerAddress;
                // WriteBuffer bytes 2-3: data
                _writeGlobalRegister_WriteBuffer[2] = (byte)(value & 0xFF);
                _writeGlobalRegister_WriteBuffer[3] = (byte)((value >> 8) & 0xFF);

                _chipSelectPin.Write(_chipSelectActiveLevel);
                _spi.Write(_writeGlobalRegister_WriteBuffer);
                _chipSelectPin.Write(!_chipSelectActiveLevel);
            }
        }
Exemple #2
0
        // ReadGlobalRegister retrieves the value of one of our network chip's internal registers
        UInt16 ReadGlobalRegister(AX88796CRegister registerAddress)
        {
            lock (_spiLock)
            {
                // WriteBuffer byte 0 [Opcode]: ReadGlobalRegister
                // WriteBuffer byte 1 [Address]: register address
                _readGlobalRegister_WriteBuffer[0] = (byte)AX88796COpcode.ReadGlobalRegister;
                _readGlobalRegister_WriteBuffer[1] = (byte)registerAddress;
                // WriteBuffer bytes 2-3: dummy data

                // write our ReadGlobalRegister command and retrieve the register data
                _chipSelectPin.Write(_chipSelectActiveLevel);
                _spi.WriteRead(_readGlobalRegister_WriteBuffer, _readGlobalRegister_ReadBuffer, 4);
                _chipSelectPin.Write(!_chipSelectActiveLevel);

                // return the register data as a UInt16
                return((UInt16)(_readGlobalRegister_ReadBuffer[0] + ((UInt16)_readGlobalRegister_ReadBuffer[1] << 8)));
            }
        }
        // WriteGlobalRegister sets the value of one of our network chip's internal registers
        void WriteGlobalRegister(AX88796CRegister registerAddress, UInt16 value)
        {
            lock (_spiLock)
            {
                // WriteBuffer byte 0 [Opcode]: WriteGlobalRegister
                _writeGlobalRegister_WriteBuffer[0] = (byte)AX88796COpcode.WriteGlobalRegister;
                // WriteBuffer byte 1 [Address]: register address
                _writeGlobalRegister_WriteBuffer[1] = (byte)registerAddress;
                // WriteBuffer bytes 2-3: data
                _writeGlobalRegister_WriteBuffer[2] = (byte)(value & 0xFF);
                _writeGlobalRegister_WriteBuffer[3] = (byte)((value >> 8) & 0xFF);

                _chipSelectPin.Write(_chipSelectActiveLevel);
                _spi.Write(_writeGlobalRegister_WriteBuffer);
                _chipSelectPin.Write(!_chipSelectActiveLevel);
            }
        }
        // ReadGlobalRegister retrieves the value of one of our network chip's internal registers
        UInt16 ReadGlobalRegister(AX88796CRegister registerAddress)
        {
            lock (_spiLock)
            {
                // WriteBuffer byte 0 [Opcode]: ReadGlobalRegister
                // WriteBuffer byte 1 [Address]: register address
                _readGlobalRegister_WriteBuffer[0] = (byte)AX88796COpcode.ReadGlobalRegister;
                _readGlobalRegister_WriteBuffer[1] = (byte)registerAddress;
                // WriteBuffer bytes 2-3: dummy data

                // write our ReadGlobalRegister command and retrieve the register data
                _chipSelectPin.Write(_chipSelectActiveLevel);
                _spi.WriteRead(_readGlobalRegister_WriteBuffer, _readGlobalRegister_ReadBuffer, 4);
                _chipSelectPin.Write(!_chipSelectActiveLevel);

                // return the register data as a UInt16
                return (UInt16)(_readGlobalRegister_ReadBuffer[0] + ((UInt16)_readGlobalRegister_ReadBuffer[1] << 8));
            }
        }