Log I2C error counts on a per slave and per error type basis and expose them via USB.
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
#include "i2c.h"
|
||||
#include "i2c_addresses.h"
|
||||
#include "config.h"
|
||||
#include "i2c_error_logger.h"
|
||||
|
||||
uint32_t I2cSlaveScheduler_Counter;
|
||||
|
||||
@@ -60,6 +61,7 @@ static void slaveSchedulerCallback(I2C_Type *base, i2c_master_handle_t *handle,
|
||||
uhk_slave_t *currentSlave = Slaves + currentSlaveId;
|
||||
|
||||
previousSlave->previousStatus = previousStatus;
|
||||
LogI2cError(previousSlaveId, previousStatus);
|
||||
|
||||
if (isFirstIteration) {
|
||||
bool wasPreviousSlaveConnected = previousSlave->isConnected;
|
||||
@@ -75,6 +77,7 @@ static void slaveSchedulerCallback(I2C_Type *base, i2c_master_handle_t *handle,
|
||||
}
|
||||
|
||||
status_t currentStatus = currentSlave->update(currentSlave->perDriverId);
|
||||
LogI2cError(currentSlaveId, currentStatus);
|
||||
isTransferScheduled = currentStatus != kStatus_Uhk_IdleSlave && currentStatus != kStatus_Uhk_NoTransfer;
|
||||
if (isTransferScheduled) {
|
||||
currentSlave->isConnected = true;
|
||||
|
||||
Reference in New Issue
Block a user