Debounce InterruptIn

Dependents:   led_sigfox Allumag_lampe_sigfox Case_study_02_Turnstile B18_MP3_PLAYER ... more

DebounceInterrupts.cpp

Committer:
kandangath
Date:
2014-02-18
Revision:
0:ca5a0fee9f52
Child:
3:e4b7033508d1

File content as of revision 0:ca5a0fee9f52:

#include "DebounceInterrupts.h"

Timeout timeout;

DebounceInterrupts::DebounceInterrupts(void (*fptr)(void), 
                                       InterruptIn *interruptIn, 
                                       const bool& rise,
                                       const unsigned int& debounce_ms)
{
    fCallback = fptr;
    if (rise) {
        interruptIn->rise(this, &DebounceInterrupts::onInterrupt);
    } else {
        interruptIn->fall(this, &DebounceInterrupts::onInterrupt);
    }
    fDebounce_us = 1000*debounce_ms;
}

DebounceInterrupts::~DebounceInterrupts()
{
}

void DebounceInterrupts::onInterrupt()
{
    timeout.detach();
    timeout.attach_us(fCallback,fDebounce_us);
}