A debouncing InterruptIn wrapper

ButtonIn.h

Committer:
evwijk
Date:
2012-02-07
Revision:
1:e806603f0088
Parent:
0:2e999fcd4c7b
Child:
2:c353357a97e4

File content as of revision 1:e806603f0088:

#include "mbed.h"

#ifndef _ButtonIn_
#define _ButtonIn_


class ButtonInCallbackInstance;


class ButtonIn {

private:
    InterruptIn _button;
    Timeout     _buttonDownTimeout;
    
    volatile 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