Debounce InterruptIn
Dependents: led_sigfox Allumag_lampe_sigfox Case_study_02_Turnstile B18_MP3_PLAYER ... more
Diff: DebounceInterrupts.h
- Revision:
- 10:cb16d2957f8d
- Parent:
- 9:970b74eb0407
- Child:
- 11:af6d7dc34062
--- a/DebounceInterrupts.h Tue Feb 18 07:06:32 2014 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ - -/** - * Debounces an InterruptIn - */ - -/* -Example: -InterruptIn up_button(p15); - -void onUp() -{ - // Do Something -} - -int main() -{ - DebounceInterrupts upD(&onUp, &up_button, INT_FALL, 100); - while(1) { - ... - } -} -*/ - -#ifndef DEBOUNCE_INTERRUPTS_H -#define DEBOUNCE_INTERRUPTS_H - -#include <stdint.h> -#include "mbed.h" - -enum interruptTrigger{ - INT_FALL = 0, - INT_RISE = 1 -}; - -class DebounceInterrupts { -private: - unsigned int _debounce_us; - unsigned int _debounce_count; - unsigned int _last_debounce_count; - - void (*fCallback)(void); - void _onInterrupt(void); - void _callback(void); -public: - 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(); - /* - * Get number of de-bounced interrupts - * @return: debounced count - */ - unsigned int get_debounce(); -}; -#endif \ No newline at end of file