diff options
-rw-r--r-- | src/counter.cpp | 21 | ||||
-rw-r--r-- | src/counter.h | 31 |
2 files changed, 34 insertions, 18 deletions
diff --git a/src/counter.cpp b/src/counter.cpp new file mode 100644 index 0000000..89e597c --- /dev/null +++ b/src/counter.cpp @@ -0,0 +1,21 @@ +#include "counter.h" + +Counter::Counter(PinName pin):_interrupt(pin) +{ + _interrupt.rise(this, &Counter::increment); +} + +void Counter::increment() +{ + _count++; +} + +int Counter::read() +{ + return _count; +} + +void Counter::write(int new_count) +{ + _count = new_count; +} diff --git a/src/counter.h b/src/counter.h index e47475e..cc3e2f4 100644 --- a/src/counter.h +++ b/src/counter.h @@ -1,24 +1,19 @@ -#include "mbed.h" +#ifndef COUNTER_H +#define COUNTER_H -class Counter { -public: - Counter(PinName pin) : _interrupt(pin) { // create the InterruptIn on the pin specified to Counter - _interrupt.rise(this, &Counter::increment); // attach increment function of this counter instance - } - - void increment() { - _count++; - } - - int read() { - return _count; - } +#include "mbed.h" - void write(int new_count) { - _count = new_count; - } - +class Counter +{ private: InterruptIn _interrupt; volatile int _count; + +public: + Counter(PinName pin); + void increment(); + int read(); + void write(int new_count); }; + +#endif |