From d58b22d12c8fa48b5bb9dc7b4e1e0a0c14611454 Mon Sep 17 00:00:00 2001
From: rocketscream <limphangmoh@gmail.com>
Date: Tue, 12 Jan 2016 16:11:34 +0800
Subject: [PATCH] Fixed attachInterrupt() for use during sleep

---
 cores/arduino/WInterrupts.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/cores/arduino/WInterrupts.c b/cores/arduino/WInterrupts.c
index 2936452d..a1f1de9e 100644
--- a/cores/arduino/WInterrupts.c
+++ b/cores/arduino/WInterrupts.c
@@ -66,6 +66,9 @@ void attachInterrupt(uint32_t pin, voidFuncPtr callback, uint32_t mode)
     enabled = 1;
   }
 
+  // Enable wakeup capability on pin in case being used during sleep
+  EIC->WAKEUP.reg |= (1 << in);
+
   // Assign pin to EIC
   pinPeripheral(pin, PIO_EXTINT);
 
@@ -118,6 +121,9 @@ void detachInterrupt(uint32_t pin)
     return;
 
   EIC->INTENCLR.reg = EIC_INTENCLR_EXTINT(1 << in);
+  
+  // Disable wakeup capability on pin during sleep
+  EIC->WAKEUP.reg &= ~(1 << in);
 }
 
 /*
-- 
GitLab