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);