A debouncing InterruptIn wrapper
Diff: ButtonIn.h
- Revision:
- 0:2e999fcd4c7b
- Child:
- 1:e806603f0088
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ButtonIn.h Mon Feb 06 19:53:40 2012 +0000 @@ -0,0 +1,37 @@ +#include "mbed.h" + +#ifndef _ButtonIn_ +#define _ButtonIn_ + + +class ButtonInCallbackInstance; + + +class ButtonIn { + +private: + InterruptIn _button; + Timeout _buttonDownTimeout; + + bool _buttonCanPress; + void (*_callback)(void); + ButtonInCallbackInstance *_callbackInstance; + void (ButtonInCallbackInstance::*_callbackMethod)(void); + + void click(); + void call(); + void reset(); + + + +public: + ButtonIn(PinName buttonPin); + + + void attach(void (*method)(void) = 0); + + template<class T> + void attach(T* instance, void (T::*method)(void)); +}; + +#endif \ No newline at end of file