diff --git a/IODevice.cpp b/IODevice.cpp index 9cf1221..a51c84b 100644 --- a/IODevice.cpp +++ b/IODevice.cpp @@ -292,16 +292,17 @@ bool IODevice::checkNoOverlap(VPIN firstPin, uint8_t nPins, uint8_t i2cAddress) VPIN lastPin=firstPin+nPins-1; for (IODevice *dev = _firstDevice; dev != 0; dev = dev->_nextDevice) { - // check for pin range overlaps (verbose but compiler will fix that) - VPIN firstDevPin=dev->_firstVpin; - VPIN lastDevPin=firstDevPin+dev->_nPins-1; - bool noOverlap= firstPin>lastDevPin || lastPin 0 && dev->_nPins > 0) { + // check for pin range overlaps (verbose but compiler will fix that) + VPIN firstDevPin=dev->_firstVpin; + VPIN lastDevPin=firstDevPin+dev->_nPins-1; + bool noOverlap= firstPin>lastDevPin || lastPin_I2CAddress==i2cAddress) { DIAG(F("WARNING HAL Overlap. i2c Addr 0x%x ignored."),i2cAddress);