A set of classes that mimic the behaviour of Mbed Ticker class but using TIMER0, TIMER1, TIMER2 and the RIT.

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.