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.
DigitalInDebounced.h
- Committer:
- Waldek
- Date:
- 2014-06-02
- Revision:
- 1:b59d305c4365
- Parent:
- 0:76aea589cbdd
- Child:
- 2:dabe90a0bdc1
File content as of revision 1:b59d305c4365:
#pragma once
#include "mbed.h"
#include "TimerSubscriber.h"
/*-------------------------------------------------------------
(c) W.D. 2014
-------------------------------------------------------------*/
/* ------ sample usage------
*/
#define SAMPLES_TO_DEBOUNCE 64
extern TimerSubscriber timer_user;
class DigitalInDebounced : TimerDependent
{
public:
DigitalInDebounced(PinName pin, unsigned int inDebounceTime=300);
DigitalInDebounced(PinName pin, PinMode mode, unsigned int inDebounceTime=300);
virtual ~DigitalInDebounced();
bool read(void);
bool is_stable(void) {return stable;};
// bool current_state(void) {return recent;};
bool current_state(void) {return Switch->read();};
unsigned int rd_PreDivider (void) {return PreDivider;};
unsigned int rd_Divider (void) {return Divider;};
unsigned int rd_DebounceTime (void) {return DebounceTime;};
unsigned int rd_DebounceCounter (void) {return DebounceCounter;};
virtual void TimerEvent(void);
private:
bool recent;
bool stable;
DigitalIn *Switch;
unsigned int PreDivider;
unsigned int Divider;
unsigned int DebounceTime;
unsigned int DebounceCounter;
void DigitalInDebounced_common(DigitalIn *SwitchIn, unsigned int inDebounceTime);
};