A debouncing InterruptIn wrapper
ButtonIn.h@1:e806603f0088, 2012-02-07 (annotated)
- Committer:
- evwijk
- Date:
- Tue Feb 07 09:31:26 2012 +0000
- Revision:
- 1:e806603f0088
- Parent:
- 0:2e999fcd4c7b
- Child:
- 2:c353357a97e4
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
evwijk | 1:e806603f0088 | 1 | #include "mbed.h" |
evwijk | 1:e806603f0088 | 2 | |
evwijk | 1:e806603f0088 | 3 | #ifndef _ButtonIn_ |
evwijk | 1:e806603f0088 | 4 | #define _ButtonIn_ |
evwijk | 1:e806603f0088 | 5 | |
evwijk | 1:e806603f0088 | 6 | |
evwijk | 1:e806603f0088 | 7 | class ButtonInCallbackInstance; |
evwijk | 1:e806603f0088 | 8 | |
evwijk | 1:e806603f0088 | 9 | |
evwijk | 1:e806603f0088 | 10 | class ButtonIn { |
evwijk | 1:e806603f0088 | 11 | |
evwijk | 1:e806603f0088 | 12 | private: |
evwijk | 1:e806603f0088 | 13 | InterruptIn _button; |
evwijk | 1:e806603f0088 | 14 | Timeout _buttonDownTimeout; |
evwijk | 1:e806603f0088 | 15 | |
evwijk | 1:e806603f0088 | 16 | volatile bool _buttonCanPress; |
evwijk | 1:e806603f0088 | 17 | void (*_callback)(void); |
evwijk | 1:e806603f0088 | 18 | ButtonInCallbackInstance *_callbackInstance; |
evwijk | 1:e806603f0088 | 19 | void (ButtonInCallbackInstance::*_callbackMethod)(void); |
evwijk | 1:e806603f0088 | 20 | |
evwijk | 1:e806603f0088 | 21 | void click(); |
evwijk | 1:e806603f0088 | 22 | void call(); |
evwijk | 1:e806603f0088 | 23 | void reset(); |
evwijk | 1:e806603f0088 | 24 | |
evwijk | 1:e806603f0088 | 25 | |
evwijk | 1:e806603f0088 | 26 | |
evwijk | 1:e806603f0088 | 27 | public: |
evwijk | 1:e806603f0088 | 28 | ButtonIn(PinName buttonPin); |
evwijk | 1:e806603f0088 | 29 | |
evwijk | 1:e806603f0088 | 30 | |
evwijk | 1:e806603f0088 | 31 | void attach(void (*method)(void) = 0); |
evwijk | 1:e806603f0088 | 32 | |
evwijk | 1:e806603f0088 | 33 | template<class T> |
evwijk | 1:e806603f0088 | 34 | void attach(T* instance, void (T::*method)(void)); |
evwijk | 1:e806603f0088 | 35 | }; |
evwijk | 1:e806603f0088 | 36 | |
evwijk | 0:2e999fcd4c7b | 37 | #endif |