Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: D7A_Demo-Get-started CVtoOSCConverter EE3501keypad D7A_Localisation ... more
Fork of DebouncedInterrupt by
DebounceInterrupts.cpp
- Committer:
- kandangath
- Date:
- 2014-02-18
- Revision:
- 8:4b3ff16d5f91
- Parent:
- 7:2d73e219dadf
- Child:
- 9:970b74eb0407
File content as of revision 8:4b3ff16d5f91:
#include "DebounceInterrupts.h"
Timeout timeout;
DebounceInterrupts::DebounceInterrupts(void (*fptr)(void),
InterruptIn *interruptIn,
const interruptTrigger& trigger,
const unsigned int& debounce_ms)
{
fCallback = fptr;
_debounce_count = 0;
switch(trigger) {
case INT_RISE:
interruptIn->rise(this, &DebounceInterrupts::_onInterrupt);
break;
case INT_FALL:
interruptIn->fall(this, &DebounceInterrupts::_onInterrupt);
break;
default:
break;
}
_debounce_us = 1000*debounce_ms;
}
DebounceInterrupts::~DebounceInterrupts()
{
}
void DebounceInterrupts::_callback()
{
_last_debounce_count = _debounce_count;
_debounce_count = 0;
fCallback();
}
void DebounceInterrupts::_onInterrupt()
{
_debounce_count++;
timeout.attach_us(this, &DebounceInterrupts::_callback, _debounce_us);
}
unsigned int DebounceInterrupts::get_debounce()
{
return _last_debounce_count;
}
