A set of classes that mimic the behaviour of Mbed Ticker class but using TIMER0, TIMER1, TIMER2 and the RIT.
Diff: Tickers.cpp
- Revision:
- 1:e60d949ec09a
- Parent:
- 0:5c7fd96cf29a
diff -r 5c7fd96cf29a -r e60d949ec09a Tickers.cpp --- a/Tickers.cpp Fri Feb 11 10:42:52 2011 +0000 +++ b/Tickers.cpp Fri Feb 11 11:35:49 2011 +0000 @@ -22,17 +22,37 @@ #include "Tickers.h" -TickerA::TickerA() { +Ticker0::Ticker0() { + counter = 0; + _ticker0Sys.addTicker(this); +} + +Ticker0::~Ticker0() { + _ticker0Sys.delTicker(this); +} + +void +Ticker0::tick(void) { + if (counter) { + counter--; + if (counter == 0) { + counter = reload; + callback.call(); + } + } +} + +Ticker1::Ticker1() { counter = 0; _ticker1Sys.addTicker(this); } -TickerA::~TickerA() { +Ticker1::~Ticker1() { _ticker1Sys.delTicker(this); } void -TickerA::tick(void) { +Ticker1::tick(void) { if (counter) { counter--; if (counter == 0) { @@ -42,17 +62,17 @@ } } -TickerB::TickerB() { +Ticker2::Ticker2() { counter = 0; _ticker2Sys.addTicker(this); } -TickerB::~TickerB() { +Ticker2::~Ticker2() { _ticker2Sys.delTicker(this); } void -TickerB::tick(void) { +Ticker2::tick(void) { if (counter) { counter--; if (counter == 0) { @@ -62,17 +82,17 @@ } } -TickerC::TickerC() { +Ticker4::Ticker4() { counter = 0; _tickerRSys.addTicker(this); } -TickerC::~TickerC() { +Ticker4::~Ticker4() { _tickerRSys.delTicker(this); } void -TickerC::tick(void) { +Ticker4::tick(void) { if (counter) { counter--; if (counter == 0) { @@ -81,4 +101,3 @@ } } } -