From 6d12e6cd3f5f520020d49946652a94c1e3473f6b Mon Sep 17 00:00:00 2001 From: Alex Shepherd Date: Sat, 25 May 2019 15:52:55 +1200 Subject: [PATCH] added conditional compilation for ESP8266 to add ICACHE_RAM_ATTR to ExternalInterruptHandler changed storage for Micros to unsigned long --- NmraDcc.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/NmraDcc.cpp b/NmraDcc.cpp index 6adfc6e..fa2561a 100644 --- a/NmraDcc.cpp +++ b/NmraDcc.cpp @@ -310,6 +310,8 @@ DCC_PROCESSOR_STATE DccProcState ; portMUX_TYPE mux = portMUX_INITIALIZER_UNLOCKED; void IRAM_ATTR ExternalInterruptHandler(void) +#elif defined(ESP8266) +void ICACHE_RAM_ATTR ExternalInterruptHandler(void) #else void ExternalInterruptHandler(void) #endif @@ -340,9 +342,9 @@ void ExternalInterruptHandler(void) // Bit evaluation without Timer 0 ------------------------------ uint8_t DccBitVal; static int8_t bit1, bit2 ; - static word lastMicros; + static unsigned long lastMicros = 0; static byte halfBit, DCC_IrqRunning; - unsigned int actMicros, bitMicros; + unsigned long actMicros, bitMicros; if ( DCC_IrqRunning ) { // nested DCC IRQ - obviously there are glitches // ignore this interrupt and increment glitchcounter