/* Start transfer in Receive mode */
else {
/* Specify the I2C slave address */
I2CMasterSlaveAddrSet(hwAttrs->baseAddr,
object->currentTransaction->slaveAddress, true);
/* Update the I2C mode */
object->mode = I2CCC26XX_READ_MODE;
/* Check bus status, return with error if busy */
if (I2CMasterBusBusy(hwAttrs->baseAddr)) {
return I2C_STATUS_ERROR;
}
if (object->readCountIdx < 2) {
/* Start the I2C transfer in master receive mode */
I2CMasterControl(hwAttrs->baseAddr,
I2C_MASTER_CMD_BURST_SEND_START);
Log_print1(Diags_USER2,
"I2C:(%p) I2CCC26XX_IDLE_MODE: -> I2CCC26XX_READ_MODE; "
"Reading w/ NACK",
hwAttrs->baseAddr);
}
else {
/* Start the I2C transfer in master receive mode */
I2CMasterControl(hwAttrs->baseAddr,
I2C_MASTER_CMD_BURST_RECEIVE_START);
Log_print1(Diags_USER2,
"I2C:(%p) I2CCC26XX_IDLE_MODE: -> I2CCC26XX_READ_MODE; "
"Reading w/ ACK",
hwAttrs->baseAddr);
}
}