A set of classes that mimic the behaviour of Mbed Ticker class but using TIMER0, TIMER1, TIMER2 and the RIT.
Diff: Tickers.h
- Revision:
- 1:e60d949ec09a
- Parent:
- 0:5c7fd96cf29a
--- a/Tickers.h Fri Feb 11 10:42:52 2011 +0000 +++ b/Tickers.h Fri Feb 11 11:35:49 2011 +0000 @@ -32,17 +32,49 @@ // Mimic Mbed's Ticker class but using TIMER1 // (note, only goes to milliseconds level not microseconds!) -class Ticker1Sys; -extern Ticker1Sys _ticker1Sys; +class Ticker0Sys; +extern Ticker0Sys _ticker0Sys; -class TickerA { +class Ticker0 { protected: FunctionPointer callback; uint32_t counter; uint32_t reload; public: - TickerA(); - ~TickerA(); + Ticker0(); + ~Ticker0(); + void tick(void); + + void detach(void) { + callback.attach(); + } + void attach(void (*fptr)(void), double d) { + counter = reload = (uint32_t)( d * 1000.0 ); + callback.attach(fptr); + } + template<typename T> + void attach(T* tptr, void (T::*mptr)(void), double d) { + if((mptr != NULL) && (tptr != NULL)) { + counter = reload = (uint32_t)( d * 1000.0 ); + callback.attach(tptr, mptr); + } + } +}; + +// Mimic Mbed's Ticker class but using TIMER1 +// (note, only goes to milliseconds level not microseconds!) + +class Ticker1Sys; +extern Ticker1Sys _ticker1Sys; + +class Ticker1 { +protected: + FunctionPointer callback; + uint32_t counter; + uint32_t reload; +public: + Ticker1(); + ~Ticker1(); void tick(void); void detach(void) { @@ -67,14 +99,14 @@ class Ticker2Sys; extern Ticker2Sys _ticker2Sys; -class TickerB { +class Ticker2 { protected: FunctionPointer callback; uint32_t counter; uint32_t reload; public: - TickerB(); - ~TickerB(); + Ticker2(); + ~Ticker2(); void tick(void); void detach(void) { @@ -99,14 +131,14 @@ class TickerRSys; extern TickerRSys _tickerRSys; -class TickerC { +class Ticker4 { protected: FunctionPointer callback; uint32_t counter; uint32_t reload; public: - TickerC(); - ~TickerC(); + Ticker4(); + ~Ticker4(); void tick(void); void detach(void) { @@ -126,11 +158,11 @@ }; // Mimic Mbed's Ticker class but using actual Ticker by inheriting. -// This just basically "renames" Ticker to TickerD for consistancy. +// This just basically "renames" Ticker to TickerE for consistancy. -class TickerD : public Ticker { +class Ticker3 : public Ticker { public: - TickerD() : Ticker() {}; + Ticker3() : Ticker() {}; }; }; // namespace AjK ends.