mirror of
https://github.com/DCC-EX/CommandStation-EX.git
synced 2024-11-22 15:46:14 +01:00
Update I2CManager_NonBlocking.h
Missing initialisation of read buffer pointer!
This commit is contained in:
parent
d6c8595f8a
commit
10cd580061
|
@ -316,6 +316,7 @@ void I2CManagerClass::handleInterrupt() {
|
|||
deviceAddress = rbAddress;
|
||||
sendBuffer = currentRequest->writeBuffer;
|
||||
bytesToSend = currentRequest->writeLen;
|
||||
receiveBuffer = currentRequest->readBuffer;
|
||||
bytesToReceive = currentRequest->readLen;
|
||||
operation = currentRequest->operation & OPERATION_MASK;
|
||||
state = I2C_STATE_ACTIVE;
|
||||
|
@ -326,16 +327,21 @@ void I2CManagerClass::handleInterrupt() {
|
|||
// Application request completed, now send epilogue to mux
|
||||
overallStatus = completionStatus;
|
||||
currentRequest->nBytes = rxCount; // Save number of bytes read into rb
|
||||
muxPhase = MuxPhase_EPILOG;
|
||||
deviceAddress = I2C_MUX_BASE_ADDRESS + currentRequest->i2cAddress.muxNumber();
|
||||
muxData[0] = 0x00;
|
||||
sendBuffer = &muxData[0];
|
||||
bytesToSend = 1;
|
||||
bytesToReceive = 0;
|
||||
operation = OPERATION_SEND;
|
||||
state = I2C_STATE_ACTIVE;
|
||||
I2C_sendStart();
|
||||
return;
|
||||
if (_muxCount == 1) {
|
||||
// Only one MUX, don't need to deselect subbus
|
||||
muxPhase = MuxPhase_OFF;
|
||||
} else {
|
||||
muxPhase = MuxPhase_EPILOG;
|
||||
deviceAddress = I2C_MUX_BASE_ADDRESS + currentRequest->i2cAddress.muxNumber();
|
||||
muxData[0] = 0x00;
|
||||
sendBuffer = &muxData[0];
|
||||
bytesToSend = 1;
|
||||
bytesToReceive = 0;
|
||||
operation = OPERATION_SEND;
|
||||
state = I2C_STATE_ACTIVE;
|
||||
I2C_sendStart();
|
||||
return;
|
||||
}
|
||||
} else if (muxPhase == MuxPhase_EPILOG) {
|
||||
// Epilog finished, ignore completionStatus
|
||||
muxPhase = MuxPhase_OFF;
|
||||
|
|
Loading…
Reference in New Issue
Block a user