/* Includes ------------------------------------------------------------------*/ /* * libc */ #include /* * LIBOPENCM3 */ #include #include #include #include #include #include #include #include int ltc4151Config(uint32_t i2cChannel, u8 address) { int iRtn; u8 buff[2]; // write config register continuous reading buff[0] = 0x06; //config register buff[1] = 0x04; //continuous reading disable page read iRtn = I2C_Write(i2cChannel, I2C_MASTER, buff, 2, address); //printf("DEBUG> [ltc4151Config] i2c(%s) @(0x%02x) iRtn(%d) error(%d)\n", // I2C_ToString(i2cChannel), address, iRtn, I2C_GetError(i2cChannel)); return iRtn; } int ltc4151Read(uint32_t i2cChannel, u8 address, u8 dataChannel) { int iRtn; u8 cmdBuff[2]; u8 dataBuff[2]; short val = 0; cmdBuff[0] = dataChannel * 2; // read registers adress iRtn = I2C_MasterWriteRead(i2cChannel, address, (u8 *) cmdBuff, 1, (u8 *) dataBuff, 2); //printf("DEBUG> [ltc4151Read] i2c(%s) @(0x%02x) iRtn(%d) error(%d)\n", // I2C_ToString(i2cChannel), address, iRtn, I2C_GetError(i2cChannel)); if (iRtn == -1) return (-1); val = dataBuff[0]; val = ((val << 4) + (dataBuff[1] >> 4)); return ((int) val); }