Zeitsteuerung

Dependents:   mini_02

Fork of timer0 by V09

Files at this revision

API Documentation at this revision

Comitter:
rs27
Date:
Fri Feb 05 14:39:23 2016 +0000
Parent:
0:8d3e2b74d1d5
Child:
2:f63678f5ed05
Commit message:
timer

Changed in this revision

timer0.cpp Show annotated file Show diff for this revision Revisions of this file
timer0.h Show annotated file Show diff for this revision Revisions of this file
--- a/timer0.cpp	Sat Jan 03 15:26:23 2015 +0000
+++ b/timer0.cpp	Fri Feb 05 14:39:23 2016 +0000
@@ -10,7 +10,9 @@
     
     ms = 0;
     sec = 0;
-    
+    min = 0;
+    hours = 0;
+        
     // Initialize countdown timers
     for (i=0; i < TIMER0_NUM_COUNTDOWNTIMERS; i++)
       CountDownTimers[i].status = 0xFF;
@@ -19,13 +21,13 @@
 }
 
 //--------------------------------------------------------
-// Interruptroutine wird jede ms aufgerufen
+// Interruptroutine wird jede 1000µs aufgerufen, da das Senden von
+// einem Zeichen ca. 100µs Zeit beansprucht
+
 void timer0::func(void)
 {
     uint8_t i;
     
-    if(counter != 0) counter--;
-
     // Zeitbasis für Systemzeit
     // ----- count down timers in ms -------------------------------------------------
     for (i=0; i<TIMER0_NUM_COUNTDOWNTIMERS; i++) 
@@ -69,13 +71,35 @@
         else
         {
             sec = 0; 
-            
-            // hier folgt der Minutenzähler falls erforderlich           
+            if (min < 60) min++;
+            else
+            {
+              min = 0;
+              if (hours < 24) hours++; 
+                else hours = 0;
+            }                     
         }   
     }
     
 }
 
+
+//--------------------------------------------------------
+// Abfrage der Softwareuhr
+//
+// die Stunden, Minuten und Sekungen werden in einem Array zurückgegeben
+// die millisekunden sind separat
+
+void timer0::get_time_stamp(uint8_t *tarray,uint16_t *millis)
+{
+    *millis = ms;
+    *tarray = hours;
+    tarray++;
+    *tarray = min;
+    tarray++;
+    *tarray = sec;
+}
+
 //--------------------------------------------------------
 // Abfrage nach freiem Timer
 //
--- a/timer0.h	Sat Jan 03 15:26:23 2015 +0000
+++ b/timer0.h	Fri Feb 05 14:39:23 2016 +0000
@@ -14,7 +14,7 @@
 
 class timer0 {
   private:
-    
+      
     struct timerStruct
     {
       unsigned char status;           // siehe Beschreibung
@@ -24,16 +24,19 @@
     struct tm t;        // Struktur Datum & Zeit
     
     Ticker ticker;
-  
+
   public:
-    uint16_t counter;
-    
+
     uint16_t ms;        // Zähler für milli Sekunden
     uint8_t sec;        // Zähler für die Sekunden
+    uint8_t min;
+    uint8_t hours;
+
     time_t seconds;     // Sekunden
-        
+                
     timer0();
     void func(void);
+    void get_time_stamp(uint8_t *tarray,uint16_t *millis);
     uint8_t AllocateCountdownTimer (void);
     void RemoveCountdownTimer(uint8_t timer);
     uint8_t GetTimerStatus(uint8_t timer);