Skip to content

Commit 6c3412b

Browse files
committed
Add first implementation of attchInterrupts
Need to check actual C++ implementation to understand if we can do it
1 parent 0920055 commit 6c3412b

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

cores/arduino/Interrupts.cpp

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
Copyright (c) 2012 Arduino. All right reserved.
3+
4+
This library is free software; you can redistribute it and/or
5+
modify it under the terms of the GNU Lesser General Public
6+
License as published by the Free Software Foundation; either
7+
version 2.1 of the License, or (at your option) any later version.
8+
9+
This library is distributed in the hope that it will be useful,
10+
but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12+
See the GNU Lesser General Public License for more details.
13+
14+
You should have received a copy of the GNU Lesser General Public
15+
License along with this library; if not, write to the Free Software
16+
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17+
*/
18+
19+
#include "Arduino.h"
20+
21+
void attachInterruptParam(pin_size_t interruptNum, voidFuncPtrParam func, PinStatus mode, void* param) {
22+
// need to check if destructor also destroys the callback object
23+
if (mode == FALLING) {
24+
InterruptIn((PinName)interruptNum).fall(callback(func, param));
25+
} else {
26+
InterruptIn((PinName)interruptNum).rise(callback(func, param));
27+
}
28+
}
29+
30+
void attachInterrupt(pin_size_t interruptNum, voidFuncPtr func, PinStatus mode) {
31+
attachInterruptParam(interruptNum, (voidFuncPtrParam)func, mode, NULL);
32+
}

0 commit comments

Comments
 (0)