Zeitsteuerung
Fork of timer0 by
Revision 1:3ab9e5cd87e7, committed 2016-02-05
- 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);
