Zeitsteuerung
Fork of timer0 by
Diff: timer0.cpp
- Revision:
- 1:3ab9e5cd87e7
- Parent:
- 0:8d3e2b74d1d5
- Child:
- 2:f63678f5ed05
--- 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 //