A debouncing InterruptIn wrapper

Committer:
evwijk
Date:
Mon Feb 06 19:53:40 2012 +0000
Revision:
0:2e999fcd4c7b
Child:
1:e806603f0088

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
evwijk 0:2e999fcd4c7b 1 #include "mbed.h"
evwijk 0:2e999fcd4c7b 2
evwijk 0:2e999fcd4c7b 3 #ifndef _ButtonIn_
evwijk 0:2e999fcd4c7b 4 #define _ButtonIn_
evwijk 0:2e999fcd4c7b 5
evwijk 0:2e999fcd4c7b 6
evwijk 0:2e999fcd4c7b 7 class ButtonInCallbackInstance;
evwijk 0:2e999fcd4c7b 8
evwijk 0:2e999fcd4c7b 9
evwijk 0:2e999fcd4c7b 10 class ButtonIn {
evwijk 0:2e999fcd4c7b 11
evwijk 0:2e999fcd4c7b 12 private:
evwijk 0:2e999fcd4c7b 13 InterruptIn _button;
evwijk 0:2e999fcd4c7b 14 Timeout _buttonDownTimeout;
evwijk 0:2e999fcd4c7b 15
evwijk 0:2e999fcd4c7b 16 bool _buttonCanPress;
evwijk 0:2e999fcd4c7b 17 void (*_callback)(void);
evwijk 0:2e999fcd4c7b 18 ButtonInCallbackInstance *_callbackInstance;
evwijk 0:2e999fcd4c7b 19 void (ButtonInCallbackInstance::*_callbackMethod)(void);
evwijk 0:2e999fcd4c7b 20
evwijk 0:2e999fcd4c7b 21 void click();
evwijk 0:2e999fcd4c7b 22 void call();
evwijk 0:2e999fcd4c7b 23 void reset();
evwijk 0:2e999fcd4c7b 24
evwijk 0:2e999fcd4c7b 25
evwijk 0:2e999fcd4c7b 26
evwijk 0:2e999fcd4c7b 27 public:
evwijk 0:2e999fcd4c7b 28 ButtonIn(PinName buttonPin);
evwijk 0:2e999fcd4c7b 29
evwijk 0:2e999fcd4c7b 30
evwijk 0:2e999fcd4c7b 31 void attach(void (*method)(void) = 0);
evwijk 0:2e999fcd4c7b 32
evwijk 0:2e999fcd4c7b 33 template<class T>
evwijk 0:2e999fcd4c7b 34 void attach(T* instance, void (T::*method)(void));
evwijk 0:2e999fcd4c7b 35 };
evwijk 0:2e999fcd4c7b 36
evwijk 0:2e999fcd4c7b 37 #endif