1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2025-02-16 22:19:14 +01:00

Update IO_PCF8574.h

Correct handling of input in immediate mode,
This commit is contained in:
Neil McKechnie 2021-11-21 17:56:06 +00:00
parent d7fd9e1538
commit 53113e981d

View File

@ -75,7 +75,7 @@ private:
if (immediate) { if (immediate) {
uint8_t buffer[1]; uint8_t buffer[1];
I2CManager.read(_I2CAddress, buffer, 1); I2CManager.read(_I2CAddress, buffer, 1);
_portInputState = ((uint16_t)buffer) & 0xff; _portInputState = buffer[0];
} else { } else {
requestBlock.wait(); // Wait for preceding operation to complete requestBlock.wait(); // Wait for preceding operation to complete
// Issue new request to read GPIO register // Issue new request to read GPIO register
@ -86,7 +86,7 @@ private:
// This function is invoked when an I/O operation on the requestBlock completes. // This function is invoked when an I/O operation on the requestBlock completes.
void _processCompletion(uint8_t status) override { void _processCompletion(uint8_t status) override {
if (status == I2C_STATUS_OK) if (status == I2C_STATUS_OK)
_portInputState = ((uint16_t)inputBuffer[0]) & 0xff; _portInputState = inputBuffer[0];
else else
_portInputState = 0xff; _portInputState = 0xff;
} }