IR remoute control multiple click button

Dependents:   Exam_TK Exam_TK

Revision:
0:94d6bf511846
Child:
1:d5f5481d7eaf
Child:
2:7a268df54696
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UserButton.h	Fri Jul 12 07:35:10 2019 +0000
@@ -0,0 +1,47 @@
+InterruptIn mybutton(USER_BUTTON);
+
+Timeout FrameTimeout;
+Timeout BounceTimeout;
+
+uint8_t Debounce=0;
+uint8_t cnt=0,*pind_cnt;
+uint8_t *pmode=0;
+
+ 
+//------------------
+void FrameTimeout_isr()
+{
+    *pmode=cnt;
+    cnt=0;                   
+}
+
+//---------------------
+void BounceTimeout_isr()
+{
+  Debounce=0;
+  
+}    
+ 
+//------------
+void pressed()
+{
+     if(Debounce==0){
+        Debounce=1;
+        cnt++;
+        *pind_cnt=cnt;
+        FrameTimeout.detach();
+        FrameTimeout.attach(FrameTimeout_isr,1.0);          
+        BounceTimeout.attach(BounceTimeout_isr,0.2);
+    }
+}
+
+//-----------------------------------
+void ButtonIni(uint8_t *pind,uint8_t *pm)
+{
+ pmode=pm;
+ pind_cnt=pind;
+ mybutton.fall(&pressed);
+ } 
+
+
+