A debouncing InterruptIn wrapper

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?

UserRevisionLine numberNew 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