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
Revision 7:2d73e219dadf, committed 2014-02-18
- Comitter:
- kandangath
- Date:
- Tue Feb 18 07:00:07 2014 +0000
- Parent:
- 6:e1461ccdf3c0
- Child:
- 8:4b3ff16d5f91
- Commit message:
- Add counter for debounced interrupts
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 06:46:06 2014 +0000
+++ b/DebounceInterrupts.cpp Tue Feb 18 07:00:07 2014 +0000
@@ -8,6 +8,7 @@
const unsigned int& debounce_ms)
{
fCallback = fptr;
+ _debounce_count = 0;
switch(trigger) {
case INT_RISE:
@@ -20,14 +21,26 @@
break;
}
- fDebounce_us = 1000*debounce_ms;
+ _debounce_us = 1000*debounce_ms;
}
DebounceInterrupts::~DebounceInterrupts()
{
}
+void DebounceInterrupts::_callback()
+{
+ _debounce_count = 0;
+ fCallback();
+}
+
void DebounceInterrupts::_onInterrupt()
{
- timeout.attach_us(fCallback,fDebounce_us);
-}
\ No newline at end of file
+ _debounce_count++;
+ timeout.attach_us(this, &DebounceInterrupts::_callback, _debounce_us);
+}
+
+unsigned int DebounceInterrupts::get_debounce()
+{
+ return _debounce_count;
+}
--- a/DebounceInterrupts.h Tue Feb 18 06:46:06 2014 +0000
+++ b/DebounceInterrupts.h Tue Feb 18 07:00:07 2014 +0000
@@ -34,14 +34,22 @@
class DebounceInterrupts {
private:
- unsigned int fDebounce_us;
+ unsigned int _debounce_us;
+ unsigned int _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
