Kuvée / Base_I2C_Device
Committer:
glansberry
Date:
Tue Jul 28 14:45:29 2015 +0000
Revision:
1:700cce0a0ca8
Parent:
0:fa683f936086
Child:
2:0a77105ec549
Modify WriteRegister functions to return success or fail

Who changed what in which revision?

UserRevisionLine numberNew contents of line
glansberry 0:fa683f936086 1 #include "Base_I2C_Device.h"
glansberry 0:fa683f936086 2
glansberry 0:fa683f936086 3
glansberry 0:fa683f936086 4
glansberry 0:fa683f936086 5
glansberry 0:fa683f936086 6 uint8_t Base_I2C_Device::ReadRegisterByte(uint8_t reg)
glansberry 0:fa683f936086 7 {
glansberry 0:fa683f936086 8 char temp_write[1];
glansberry 0:fa683f936086 9 char temp_read[1];
glansberry 0:fa683f936086 10
glansberry 0:fa683f936086 11 temp_write[0] = reg;
glansberry 0:fa683f936086 12 i2c.write(m_address, temp_write, 1, false); // no stop (unsure)
glansberry 0:fa683f936086 13 i2c.read(m_address, temp_read, 1, 0);
glansberry 0:fa683f936086 14
glansberry 0:fa683f936086 15 return (uint8_t)temp_read[0];
glansberry 0:fa683f936086 16 }
glansberry 0:fa683f936086 17 uint16_t Base_I2C_Device::ReadRegisterWord(uint8_t reg)
glansberry 0:fa683f936086 18 {
glansberry 0:fa683f936086 19 char temp_write[1];
glansberry 0:fa683f936086 20 char temp_read[2];
glansberry 0:fa683f936086 21
glansberry 0:fa683f936086 22 temp_write[0] = reg;
glansberry 0:fa683f936086 23 i2c.write(m_address, temp_write, 1, false); // no stop (unsure)
glansberry 0:fa683f936086 24 i2c.read(m_address, temp_read, 2, 0);
glansberry 0:fa683f936086 25
glansberry 0:fa683f936086 26 return (((uint16_t)temp_read[0]) << 8) | (uint16_t)temp_read[1];
glansberry 0:fa683f936086 27
glansberry 0:fa683f936086 28 }
glansberry 0:fa683f936086 29 int Base_I2C_Device::WriteRegister(uint8_t reg, uint8_t value)
glansberry 0:fa683f936086 30 {
glansberry 0:fa683f936086 31 char temp_write[2];
glansberry 0:fa683f936086 32
glansberry 0:fa683f936086 33 temp_write[0] = reg;
glansberry 0:fa683f936086 34 temp_write[1] = value; //check order of these (endianness)
glansberry 1:700cce0a0ca8 35 return i2c.write(m_address, temp_write, 2, 0);
glansberry 0:fa683f936086 36 }
glansberry 0:fa683f936086 37
glansberry 0:fa683f936086 38 int Base_I2C_Device::WriteRegister(uint8_t reg, uint16_t value)
glansberry 0:fa683f936086 39 {
glansberry 0:fa683f936086 40 char temp_write[3];
glansberry 0:fa683f936086 41
glansberry 0:fa683f936086 42 temp_write[0] = reg;
glansberry 0:fa683f936086 43 temp_write[1] = value>>8;
glansberry 0:fa683f936086 44 temp_write[2] = (value & 0xFF);
glansberry 1:700cce0a0ca8 45 return i2c.write(m_address, temp_write, 3, 0);
glansberry 0:fa683f936086 46 }