diff options
Diffstat (limited to 'src')
| -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 | 
