diff --git a/IO_MCP23008.h b/IO_MCP23008.h index 18ff12f..1b8471e 100644 --- a/IO_MCP23008.h +++ b/IO_MCP23008.h @@ -22,6 +22,12 @@ #include "IO_GPIOBase.h" +#if defined(ARDUINO_ARCH_ESP32) // min seems to be missing from that package +#ifndef min +#define min(a,b) ((a)<(b)?(a):(b)) +#endif +#endif + class MCP23008 : public GPIOBase { public: static void create(VPIN firstVpin, uint8_t nPins, uint8_t I2CAddress, int interruptPin=-1) { @@ -97,4 +103,4 @@ private: }; -#endif \ No newline at end of file +#endif diff --git a/IO_PCF8574.h b/IO_PCF8574.h index dea5e2c..8403a1a 100644 --- a/IO_PCF8574.h +++ b/IO_PCF8574.h @@ -75,7 +75,7 @@ private: if (immediate) { uint8_t buffer[1]; I2CManager.read(_I2CAddress, buffer, 1); - _portInputState = ((uint16_t)buffer) & 0xff; + _portInputState = buffer[0]; } else { requestBlock.wait(); // Wait for preceding operation to complete // 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. void _processCompletion(uint8_t status) override { if (status == I2C_STATUS_OK) - _portInputState = ((uint16_t)inputBuffer[0]) & 0xff; + _portInputState = inputBuffer[0]; else _portInputState = 0xff; } @@ -99,4 +99,4 @@ private: uint8_t inputBuffer[1]; }; -#endif \ No newline at end of file +#endif diff --git a/RMFTMacros.h b/RMFTMacros.h index 01bfb46..8c98acd 100644 --- a/RMFTMacros.h +++ b/RMFTMacros.h @@ -226,16 +226,16 @@ const int StringMacroTracker1=__COUNTER__; // Define macros for route code creation #define V(val) ((int16_t)(val))&0x00FF,((int16_t)(val)>>8)&0x00FF -#define NOP 0,0 +#define NOOPERAND 0,0 #define ALIAS(name,value) #define EXRAIL const FLASH byte RMFT2::RouteCode[] = { #define AUTOMATION(id, description) OPCODE_AUTOMATION, V(id), #define ROUTE(id, description) OPCODE_ROUTE, V(id), #define SEQUENCE(id) OPCODE_SEQUENCE, V(id), -#define ENDTASK OPCODE_ENDTASK,NOP, -#define DONE OPCODE_ENDTASK,NOP, -#define ENDEXRAIL OPCODE_ENDTASK,NOP,OPCODE_ENDEXRAIL,NOP }; +#define ENDTASK OPCODE_ENDTASK,NOOPERAND, +#define DONE OPCODE_ENDTASK,NOOPERAND, +#define ENDEXRAIL OPCODE_ENDTASK,NOOPERAND,OPCODE_ENDEXRAIL,NOOPERAND }; #define AFTER(sensor_id) OPCODE_AT,V(sensor_id),OPCODE_AFTER,V(sensor_id), #define AMBER(signal_id) OPCODE_AMBER,V(signal_id), @@ -245,7 +245,7 @@ const int StringMacroTracker1=__COUNTER__; #define DELAY(ms) OPCODE_DELAY,V(ms/100L), #define DELAYMINS(mindelay) OPCODE_DELAYMINS,V(mindelay), #define DELAYRANDOM(mindelay,maxdelay) OPCODE_DELAY,V(mindelay/100L),OPCODE_RANDWAIT,V((maxdelay-mindelay)/100L), -#define ENDIF OPCODE_ENDIF,NOP, +#define ENDIF OPCODE_ENDIF,NOOPERAND, #define ESTOP OPCODE_SPEED,V(1), #define FADE(pin,value,ms) OPCODE_SERVO,V(pin),OPCODE_PAD,V(value),OPCODE_PAD,V(PCA9685::ProfileType::UseDuration|PCA9685::NoPowerOff),OPCODE_PAD,V(ms/100L), #define FOFF(func) OPCODE_FOFF,V(func), @@ -258,23 +258,23 @@ const int StringMacroTracker1=__COUNTER__; #define IFNOT(sensor_id) OPCODE_IFNOT,V(sensor_id), #define IFRANDOM(percent) OPCODE_IFRANDOM,V(percent), #define IFRESERVE(block) OPCODE_IFRESERVE,V(block), -#define INVERT_DIRECTION OPCODE_INVERT_DIRECTION,NOP, -#define JOIN OPCODE_JOIN,NOP, +#define INVERT_DIRECTION OPCODE_INVERT_DIRECTION,NOOPERAND, +#define JOIN OPCODE_JOIN,NOOPERAND, #define LATCH(sensor_id) OPCODE_LATCH,V(sensor_id), #define LCD(id,msg) PRINT(msg) #define LCN(msg) PRINT(msg) #define ONCLOSE(turnout_id) OPCODE_ONCLOSE,V(turnout_id), #define ONTHROW(turnout_id) OPCODE_ONTHROW,V(turnout_id), -#define PAUSE OPCODE_PAUSE,NOP, +#define PAUSE OPCODE_PAUSE,NOOPERAND, #define POM(cv,value) OPCODE_POM,V(cv),OPCODE_PAD,V(value), -#define POWEROFF OPCODE_POWEROFF,NOP, +#define POWEROFF OPCODE_POWEROFF,NOOPERAND, #define PRINT(msg) OPCODE_PRINT,V(__COUNTER__ - StringMacroTracker2), -#define READ_LOCO OPCODE_READ_LOCO1,NOP,OPCODE_READ_LOCO2,NOP, +#define READ_LOCO OPCODE_READ_LOCO1,NOOPERAND,OPCODE_READ_LOCO2,NOOPERAND, #define RED(signal_id) OPCODE_RED,V(signal_id), #define RESERVE(blockid) OPCODE_RESERVE,V(blockid), #define RESET(pin) OPCODE_RESET,V(pin), -#define RESUME OPCODE_RESUME,NOP, -#define RETURN OPCODE_RETURN,NOP, +#define RESUME OPCODE_RESUME,NOOPERAND, +#define RETURN OPCODE_RETURN,NOOPERAND, #define REV(speed) OPCODE_REV,V(speed), #define SENDLOCO(cab,route) OPCODE_SENDLOCO,V(cab),OPCODE_PAD,V(route), #define SERIAL(msg) PRINT(msg) @@ -293,7 +293,7 @@ const int StringMacroTracker1=__COUNTER__; #define PIN_TURNOUT(id,pin) OPCODE_PINTURNOUT,V(id),OPCODE_PAD,V(pin), #define THROW(id) OPCODE_THROW,V(id), #define TURNOUT(id,addr,subaddr) OPCODE_TURNOUT,V(id),OPCODE_PAD,V(addr),OPCODE_PAD,V(subaddr), -#define UNJOIN OPCODE_UNJOIN,NOP, +#define UNJOIN OPCODE_UNJOIN,NOOPERAND, #define UNLATCH(sensor_id) OPCODE_UNLATCH,V(sensor_id), #define WAITFOR(pin) OPCODE_WAITFOR,V(pin), #define XFOFF(cab,func) OPCODE_XFOFF,V(cab),OPCODE_PAD,V(func),