Improvement to the DebounceInt library providing an easier to use interface much more alike the usual InterrupIn interface
Fork of DebounceInt by
Diff: DebounceInt2.h
- Revision:
- 3:3b5c7faadd5c
- Parent:
- 2:bd5a3171ebc4
--- a/DebounceInt2.h Tue Feb 25 06:37:35 2014 +0000 +++ b/DebounceInt2.h Tue Feb 25 07:53:23 2014 +0000 @@ -43,7 +43,7 @@ #define _DEBOUNCEINTDELAYDEFAULT 50000 //useconds, this number would be about 50 ms #define _MINDBOUNCEDELAY 50 -typedef void (*t_fhandler)(void); +//typedef void (*t_fhandler)(void); class DebounceInt2 { @@ -55,7 +55,7 @@ InterruptIn* intRise; InterruptIn* intFall; bool riseAttached,fallAttached; - t_fhandler riseHandler,fallHandler; + FunctionPointer *riseHandler,*fallHandler; PinName pin; public://methods @@ -63,10 +63,14 @@ DebounceInt2(PinName pin);//Constructor with PinName, delay will remain default value DebounceInt2(PinName pin,unsigned int delay_us);//Constructor with PinName and specified delay in micro-seconds void setDelay(unsigned int); //method to modify delay for debounce in us - void rise(t_fhandler); //attach interrupt handler for interrupt on rising edge + void rise(FunctionPointer); //attach interrupt handler for interrupt on rising edge + template<typename T> + void rise(T* tptr, void (T::*mptr)(void)); void disableRise(void); //rise interrupt handler for rising edge void enableRise(void); //unmask rise interrupt handler for rising edge - void fall(t_fhandler); //attach interrupt handler for interrupt on falling edge + void fall(FunctionPointer); //attach interrupt handler for interrupt on falling edge + template<typename T> + void fall(T* tptr, void (T::*mptr)(void)); void disableFall(void); //mask fall interrupt handler for rising edge void enableFall(void); //unmask fall interrupt handler for rising edge