From 320923b41c6c07a7ec6bc46b80ea9084a2142835 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Sun, 1 Oct 2017 01:39:12 +0200 Subject: [PATCH] Properly update uhk_slave_t.isConnected by introducing isFirstIteration. --- right/src/slave_scheduler.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/right/src/slave_scheduler.c b/right/src/slave_scheduler.c index af3323e..3458258 100644 --- a/right/src/slave_scheduler.c +++ b/right/src/slave_scheduler.c @@ -22,6 +22,7 @@ uhk_slave_t Slaves[] = { static void masterCallback(I2C_Type *base, i2c_master_handle_t *handle, status_t previousStatus, void *userData) { + bool isFirstIteration = true; bool isTransferScheduled = false; 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 *currentSlave = Slaves + currentSlaveId; - previousSlave->isConnected = previousStatus == kStatus_Success; + if (isFirstIteration) { + previousSlave->isConnected = previousStatus == kStatus_Success; + isFirstIteration = false; + } if (!currentSlave->isConnected) { currentSlave->init(currentSlave->perDriverId);