Debounce InterruptIn

Dependents:   led_sigfox Allumag_lampe_sigfox Case_study_02_Turnstile B18_MP3_PLAYER ... more

Files at this revision

API Documentation at this revision

Comitter:
kandangath
Date:
Tue Feb 18 06:15:45 2014 +0000
Parent:
3:e4b7033508d1
Child:
5:3c0f741fb448
Commit message:
Add enum for interrupt trigger

Changed in this revision

DebounceInterrupts.cpp Show annotated file Show diff for this revision Revisions of this file
DebounceInterrupts.h Show annotated file Show diff for this revision Revisions of this file
--- a/DebounceInterrupts.cpp	Tue Feb 18 05:11:10 2014 +0000
+++ b/DebounceInterrupts.cpp	Tue Feb 18 06:15:45 2014 +0000
@@ -4,15 +4,22 @@
 
 DebounceInterrupts::DebounceInterrupts(void (*fptr)(void), 
                                        InterruptIn *interruptIn, 
-                                       const bool& rise,
+                                       const interruptTrigger& trigger,
                                        const unsigned int& debounce_ms)
 {
     fCallback = fptr;
-    if (rise) {
+    
+    switch(trigger) {
+     case INT_RISE:
         interruptIn->rise(this, &DebounceInterrupts::_onInterrupt);
-    } else {
+        break;
+     case INT_FALL:
         interruptIn->fall(this, &DebounceInterrupts::_onInterrupt);
+        break;
+     default:
+        break;
     }
+
     fDebounce_us = 1000*debounce_ms;
 }
 
--- a/DebounceInterrupts.h	Tue Feb 18 05:11:10 2014 +0000
+++ b/DebounceInterrupts.h	Tue Feb 18 06:15:45 2014 +0000
@@ -9,16 +9,21 @@
 #include <stdint.h>
 #include "mbed.h"
 
+enum interruptTrigger{
+    INT_FALL = 0,
+    INT_RISE = 1
+};
+
 class DebounceInterrupts {
 private:
     unsigned int fDebounce_us;
     void (*fCallback)(void);
     void _onInterrupt(void);
 public:
-    DebounceInterrupts(void (*fptr)(void),              /* function to be called after debounced InterruptIn */
-                       InterruptIn *interrupt,          /* InterruptIn to monitor */
-                       const bool& rise=true,           /* true: rise, false: fall */
-                       const uint32_t& debounce_ms=10); /* stability duration required */
+    DebounceInterrupts(void (*fptr)(void),                  /* function to be called after debounced InterruptIn */
+                       InterruptIn *interrupt,              /* InterruptIn to monitor */
+                       const interruptTrigger& trigger,     /* true: rise, false: fall */
+                       const uint32_t& debounce_ms=10);     /* stability duration required */
     ~DebounceInterrupts();
 };
 #endif
\ No newline at end of file