Update and log previous I2C status within the if (isFirstIteration) block.

This commit is contained in:
László Monda
2018-01-06 17:00:59 +01:00
parent da20cdacc4
commit e75d366245

View File

@@ -60,17 +60,18 @@ static void slaveSchedulerCallback(I2C_Type *base, i2c_master_handle_t *handle,
uhk_slave_t *previousSlave = Slaves + previousSlaveId;
uhk_slave_t *currentSlave = Slaves + currentSlaveId;
previousSlave->previousStatus = previousStatus;
if (IS_STATUS_I2C_ERROR(previousStatus)) {
LogI2cError(previousSlaveId, previousStatus);
}
if (isFirstIteration) {
previousSlave->previousStatus = previousStatus;
if (IS_STATUS_I2C_ERROR(previousStatus)) {
LogI2cError(previousSlaveId, previousStatus);
}
bool wasPreviousSlaveConnected = previousSlave->isConnected;
previousSlave->isConnected = previousStatus == kStatus_Success;
if (wasPreviousSlaveConnected && !previousSlave->isConnected && previousSlave->disconnect) {
previousSlave->disconnect(previousSlaveId);
}
isFirstIteration = false;
}