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

Revision:
0:9c5c674dcaea
Child:
1:67d677ad73e7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MultiClick.h	Fri Jun 10 08:09:22 2016 +0000
@@ -0,0 +1,28 @@
+#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);
+};