示例#1
0
        /// <summary>
        /// Read from sequential registers on the MCP23017 via I2C
        /// </summary>
        /// <param name="i2c">I2C Interface, probabally the Bus Pirate</param>
        /// <param name="register">Base Register Address</param>
        /// <returns>Values Read</returns>
        private byte[] ReadRegisters(I2CInterface i2c, Register register, uint registerstoread)
        {
            //Set address pointer
            byte opcode = (byte)(((this.Address % 8) << 1) | 0x40);

            byte[] data = { opcode, (byte)register };
            i2c.WriteThenRead(data, 0);

            //Read data
            opcode = (byte)(((this.Address % 8) << 1) | 0x41);
            return(i2c.WriteThenRead(new byte[] { opcode }, registerstoread));
        }
示例#2
0
        /// <summary>
        /// Write to a register on the MCP23017 via I2C
        /// </summary>
        /// <param name="i2c">I2C Interface, probabally the Bus Pirate</param>
        /// <param name="register">Register Address</param>
        /// <param name="value">Value to write</param>
        private void WriteRegister(I2CInterface i2c, Register register, byte value)
        {
            byte opcode = (byte)(((this.Address % 8) << 1) | 0x40);

            byte[] data = { opcode, (byte)register, value };
            i2c.WriteThenRead(data, 0);
        }
示例#3
0
        /// <summary>
        /// Write to sequential registers on the MCP23017 via I2C
        /// </summary>
        /// <param name="i2c">I2C Interface, probabally the Bus Pirate</param>
        /// <param name="register">Base Register Address</param>
        /// <param name="value">Value to write</param>
        private void WriteRegisters(I2CInterface i2c, Register register, byte[] values)
        {
            byte        opcode = (byte)(((this.Address % 8) << 1) | 0x40);
            List <byte> data   = new List <byte> {
                opcode, (byte)register
            };

            data.AddRange(values);
            i2c.WriteThenRead(data.ToArray(), 0);
        }
示例#4
0
 /// <summary>
 /// Write to sequential registers on the MCP23017 via I2C
 /// </summary>
 /// <param name="i2c">I2C Interface, probabally the Bus Pirate</param>
 /// <param name="register">Base Register Address</param>
 /// <param name="value">Value to write</param>
 private void WriteRegisters(I2CInterface i2c, Register register, byte[] values)
 {
     byte opcode = (byte)(((this.Address % 8) << 1) | 0x40);
     List<byte> data = new List<byte> { opcode, (byte)register };
     data.AddRange(values);
     i2c.WriteThenRead(data.ToArray(), 0);
 }
示例#5
0
 /// <summary>
 /// Write to a register on the MCP23017 via I2C
 /// </summary>
 /// <param name="i2c">I2C Interface, probabally the Bus Pirate</param>
 /// <param name="register">Register Address</param>
 /// <param name="value">Value to write</param>
 private void WriteRegister(I2CInterface i2c, Register register, byte value)
 {
     byte opcode = (byte)(((this.Address % 8) << 1) | 0x40);
     byte[] data = { opcode, (byte)register, value };
     i2c.WriteThenRead(data, 0);
 }
示例#6
0
        /// <summary>
        /// Read from sequential registers on the MCP23017 via I2C
        /// </summary>
        /// <param name="i2c">I2C Interface, probabally the Bus Pirate</param>
        /// <param name="register">Base Register Address</param>
        /// <returns>Values Read</returns>
        private byte[] ReadRegisters(I2CInterface i2c, Register register, uint registerstoread)
        {
            //Set address pointer
            byte opcode = (byte)(((this.Address % 8) << 1) | 0x40);
            byte[] data = { opcode, (byte)register };
            i2c.WriteThenRead(data, 0);

            //Read data
            opcode = (byte)(((this.Address % 8) << 1) | 0x41);
            return i2c.WriteThenRead(new byte[] {opcode}, registerstoread);
        }