Skip to content

Commit aaa0987

Browse files
authored
save 192 RAM bytes when attachInterrupt unused
1 parent 4bafbe5 commit aaa0987

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

cores/esp8266/core_esp8266_wiring_digital.c

+3-4
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ extern void ICACHE_RAM_ATTR __attachInterruptArg(uint8_t pin, voidFuncPtr userFu
161161
GPC(pin) &= ~(0xF << GPCI);//INT mode disabled
162162
GPIEC = (1 << pin); //Clear Interrupt for this pin
163163
GPC(pin) |= ((mode & 0xF) << GPCI);//INT mode "mode"
164+
ETS_GPIO_INTR_ATTACH(interrupt_handler, &interrupt_reg);
164165
ETS_GPIO_INTR_ENABLE();
165166
}
166167
}
@@ -180,7 +181,8 @@ extern void ICACHE_RAM_ATTR __detachInterrupt(uint8_t pin) {
180181
handler->mode = 0;
181182
handler->fn = 0;
182183
handler->arg = 0;
183-
ETS_GPIO_INTR_ENABLE();
184+
if (interrupt_reg)
185+
ETS_GPIO_INTR_ENABLE();
184186
}
185187
}
186188

@@ -197,9 +199,6 @@ void initPins() {
197199
for (int i = 12; i <= 16; ++i) {
198200
pinMode(i, INPUT);
199201
}
200-
201-
ETS_GPIO_INTR_ATTACH(interrupt_handler, &interrupt_reg);
202-
ETS_GPIO_INTR_ENABLE();
203202
}
204203

205204
extern void pinMode(uint8_t pin, uint8_t mode) __attribute__ ((weak, alias("__pinMode")));

0 commit comments

Comments
 (0)