/* Time Counters Last updated 25.10.01 */ #include "H8.h" #include "Timers.h" #ifndef TimeCounters_H_DEFINED #define TimeCounters_H_DEFINED #define DisableTimer DisableT0 #define EnableTimer EnableT0 /* Counters related to real time: * * Every 1 msec a timer interrupt calls TimeCountersUpdate. * MSCount and MSTime is incremented at each interrupt. * MSTime is used to keep track of a RealTime counter * measured in seconds. When MSTime = 1000 msec * this real time counter is incremented. * * Timer T0 is used. Hence, it is assumed that an interrupt * handler for T0 calls TimeCounterUpdate each msec. If another * timer is used the DisableT0/EnableT0 should also be changed. * */ static volatile word MSCount; /* msec, 0 .. 65535 msec */ static volatile word MSTime; /* msec, 0 .. 999 msec */ static volatile word RealTime; /* sec, 0 .. 65535 sec */ void TimeCountersUpdate( void ) { MSCount = MSCount + 1; MSTime = MSTime + 1; if ( MSTime == 1000 ) { RealTime = RealTime + 1; MSTime = 0; } } void TimeCountersResetTime( void ) { DisableTimer; MSTime = 0; RealTime = 0; EnableTimer; } void TimeCountersSetSec( word sec ) { DisableTimer; MSTime = 0; RealTime = sec; EnableTimer; } void TimeCountersInit ( void ) { DisableTimer; MSCount = 0; MSTime = 0; RealTime = 0; EnableTimer; } void TimeCountersClose( void ) { } #endif /* TimeCounters_H_DEFINED */