You can use multiple clicks event with one button. This library supports follow events, Single click, Double click, over 3 times click, Long press.

Dependents:   multiclick_test

MultiClick.h

Committer:
ohtsuka
Date:
2016-06-10
Revision:
0:9c5c674dcaea
Child:
1:67d677ad73e7

File content as of revision 0:9c5c674dcaea:

#include "mbed.h"

class MultiClick
{
public:
    MultiClick(PinName pin);
    MultiClick(PinName pin, PinMode m);
    void attach_clicked(void (*function)(void));
    void attach_doubleclicked(void (*function)(void));
    void attach_n_clicked(void (*function)(int));
    
private:
    void isr(void);
    void click_timeout( void );
    
    Timeout *_timeout;
    InterruptIn *_iin;
    PinMode _mode;

    float _click_interval;
    int _longpress;
    
    int _click_times;
    
    void (*_c_callback_clicked)(void);
    void (*_c_callback_doubleclicked)(void);
    void (*_c_callback_n_clicked)(int);
};