public void WriteByte(ushort address, byte data) { byte[] writeBuffer = { HighAddress(address), LowAddress(address), data }; I2CDevice.I2CWriteTransaction write = I2CDevice.CreateWriteTransaction(writeBuffer); I2CDevice.I2CTransaction[] transactions = new I2CDevice.I2CTransaction[] { write }; m_transfer_count = I2C_device.Execute(transactions, m_timeout); m_transfer_type = transfer_type.write; }
public byte CurrentByteRead() { byte[] readBuffer = { 0x0 }; I2CDevice.I2CReadTransaction read = I2CDevice.CreateReadTransaction(readBuffer); I2CDevice.I2CTransaction[] transactions = new I2CDevice.I2CTransaction[] { read }; m_transfer_count = I2C_device.Execute(transactions, m_timeout); m_transfer_type = transfer_type.read; return(readBuffer[0]); }
public void WritePage(ushort Address, EEPROM_I2C_Page EEPROM_Page) { Address = PageAddress(Address); byte[] dummyAddress = { HighAddress(Address), LowAddress(Address) }; I2CDevice.I2CWriteTransaction writeCounter = I2CDevice.CreateWriteTransaction(dummyAddress); I2CDevice.I2CWriteTransaction pageWrite = I2CDevice.CreateWriteTransaction(EEPROM_Page.Page()); I2CDevice.I2CTransaction[] transactions = new I2CDevice.I2CTransaction[] { writeCounter, pageWrite }; m_transfer_count = I2C_device.Execute(transactions, m_timeout) - 2; m_transfer_type = transfer_type.write; }
public byte RandomByteRead(ushort address) { byte[] dummyAddress = { HighAddress(address), LowAddress(address) }; byte[] readBuffer = { 0x0 }; // // non-data write relocates internal EEPROM counter for random read // I2CDevice.I2CReadTransaction read = I2CDevice.CreateReadTransaction(readBuffer); I2CDevice.I2CWriteTransaction writeCounter = I2CDevice.CreateWriteTransaction(dummyAddress); I2CDevice.I2CTransaction[] transactions = new I2CDevice.I2CTransaction[] { writeCounter, read }; m_transfer_count = I2C_device.Execute(transactions, m_timeout) - 2; m_transfer_type = transfer_type.read; return(readBuffer[0]); }
public void ReadSequential(ushort Address, uint Length, ref byte[] ReadBuffer) { if ( ((Address + Length) > EEPROM_Size) || (ReadBuffer.Length < Length)) { return; } byte[] dummyAddress = { HighAddress(Address), LowAddress(Address) }; I2CDevice.I2CReadTransaction read = I2CDevice.CreateReadTransaction(ReadBuffer); I2CDevice.I2CWriteTransaction writeCounter = I2CDevice.CreateWriteTransaction(dummyAddress); I2CDevice.I2CTransaction[] transactions = new I2CDevice.I2CTransaction[] { writeCounter, read }; m_transfer_count = I2C_device.Execute(transactions, m_timeout) - 2; m_transfer_type = transfer_type.read; }
public byte RandomByteRead(ushort address) { byte[] dummyAddress = { HighAddress(address), LowAddress(address) }; byte[] readBuffer = { 0x0 }; // // non-data write relocates internal EEPROM counter for random read // I2CDevice.I2CReadTransaction read = I2CDevice.CreateReadTransaction(readBuffer); I2CDevice.I2CWriteTransaction writeCounter = I2CDevice.CreateWriteTransaction(dummyAddress); I2CDevice.I2CTransaction[] transactions = new I2CDevice.I2CTransaction[] { writeCounter, read }; m_transfer_count = I2C_device.Execute(transactions, m_timeout) - 2; m_transfer_type = transfer_type.read; return readBuffer[0]; }
public byte CurrentByteRead() { byte[] readBuffer = { 0x0 }; I2CDevice.I2CReadTransaction read = I2CDevice.CreateReadTransaction(readBuffer); I2CDevice.I2CTransaction[] transactions = new I2CDevice.I2CTransaction[] { read }; m_transfer_count = I2C_device.Execute(transactions, m_timeout); m_transfer_type = transfer_type.read; return readBuffer[0]; }