From b1cab867ed9616563260f8cd96c995eb1082ef03 Mon Sep 17 00:00:00 2001 From: Holger Eiboeck Date: Mon, 10 Aug 2026 11:01:51 +0200 Subject: [PATCH] =?UTF-8?q?Place=20=20=20=20=20=E2=94=82=20=E2=94=82=20ESP?= =?UTF-8?q?8266=20ISR=20paths=20in=20IRAM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ClickEncoder.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/ClickEncoder.cpp b/src/ClickEncoder.cpp index 3684db3..e6660da 100644 --- a/src/ClickEncoder.cpp +++ b/src/ClickEncoder.cpp @@ -10,6 +10,12 @@ // ---------------------------------------------------------------------------- #include "ClickEncoder.h" +#if defined(ESP8266) +#define CLICK_ENCODER_ISR_ATTR IRAM_ATTR +#else +#define CLICK_ENCODER_ISR_ATTR +#endif + // ---------------------------------------------------------------------------- // Button configuration (values for 1ms timer service calls) @@ -112,7 +118,7 @@ AnalogButton::AnalogButton(int8_t BTN, int16_t rangeLow, int16_t rangeHigh) : Cl // ---------------------------------------------------------------------------- // call this every 1 millisecond via timer ISR // -void ClickEncoder::service(void) +void CLICK_ENCODER_ISR_ATTR ClickEncoder::service(void) { bool moved = false; @@ -299,7 +305,7 @@ ClickEncoder::Button ClickEncoder::getButton(void) return ret; } -bool ClickEncoder::getPinState() { +bool CLICK_ENCODER_ISR_ATTR ClickEncoder::getPinState() { bool pinState; if (analogInput) { int16_t pinValue = analogRead(pinBTN); @@ -311,3 +317,4 @@ bool ClickEncoder::getPinState() { } #endif +#undef CLICK_ENCODER_ISR_ATTR