Properly update uhk_slave_t.isConnected by introducing isFirstIteration.
This commit is contained in:
@@ -22,6 +22,7 @@ uhk_slave_t Slaves[] = {
|
|||||||
|
|
||||||
static void masterCallback(I2C_Type *base, i2c_master_handle_t *handle, status_t previousStatus, void *userData)
|
static void masterCallback(I2C_Type *base, i2c_master_handle_t *handle, status_t previousStatus, void *userData)
|
||||||
{
|
{
|
||||||
|
bool isFirstIteration = true;
|
||||||
bool isTransferScheduled = false;
|
bool isTransferScheduled = false;
|
||||||
I2cSchedulerCounter++;
|
I2cSchedulerCounter++;
|
||||||
|
|
||||||
@@ -29,7 +30,10 @@ static void masterCallback(I2C_Type *base, i2c_master_handle_t *handle, status_t
|
|||||||
uhk_slave_t *previousSlave = Slaves + previousSlaveId;
|
uhk_slave_t *previousSlave = Slaves + previousSlaveId;
|
||||||
uhk_slave_t *currentSlave = Slaves + currentSlaveId;
|
uhk_slave_t *currentSlave = Slaves + currentSlaveId;
|
||||||
|
|
||||||
previousSlave->isConnected = previousStatus == kStatus_Success;
|
if (isFirstIteration) {
|
||||||
|
previousSlave->isConnected = previousStatus == kStatus_Success;
|
||||||
|
isFirstIteration = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!currentSlave->isConnected) {
|
if (!currentSlave->isConnected) {
|
||||||
currentSlave->init(currentSlave->perDriverId);
|
currentSlave->init(currentSlave->perDriverId);
|
||||||
|
|||||||
Reference in New Issue
Block a user