Debounce InterruptIn
Dependents: led_sigfox Allumag_lampe_sigfox Case_study_02_Turnstile B18_MP3_PLAYER ... more
Revision 4:19689187352e, committed 2014-02-18
- 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