/* Function to setup and execute I2C transfer request */ static void SetupXferRecAndExecute(uint8_t devAddr, uint8_t *txBuffPtr, uint16_t txSize, uint8_t *rxBuffPtr, uint16_t rxSize) { /* Setup I2C transfer record */ i2cmXferRec.slaveAddr = devAddr; i2cmXferRec.options = 0; i2cmXferRec.status = 0; i2cmXferRec.txSz = txSize; i2cmXferRec.rxSz = rxSize; i2cmXferRec.txBuff = txBuffPtr; i2cmXferRec.rxBuff = rxBuffPtr; Chip_I2CM_XferBlocking(LPC_I2C0, &i2cmXferRec); }
bool TempSensDig::transaction(uint8_t devAddr, uint8_t *txBuffPtr, uint16_t txSize, uint8_t *rxBuffPtr, uint16_t rxSize) { I2CM_XFER_T i2cmXferRec; /* Setup I2C transfer record */ i2cmXferRec.slaveAddr = devAddr; i2cmXferRec.status = 0; i2cmXferRec.txSz = txSize; i2cmXferRec.rxSz = rxSize; i2cmXferRec.txBuff = txBuffPtr; i2cmXferRec.rxBuff = rxBuffPtr; Chip_I2CM_XferBlocking(device, &i2cmXferRec); //Sleep(40); /* Test for valid operation */ if (i2cmXferRec.status == I2CM_STATUS_OK) { return true; } else { return false; } }