Availability | All terminals |
Description | This function returns the current value of the system timer. This timer continuously increments every timer tick and doesn't have to be started and it also doesn't stop like a timeout timer. This function makes it possible to create multiple timed processes that run "simultaneously" in an application. |
Syntax | unsigned long GetSystemTime( void ); |
Arguments | None |
Returns |
Returns the current value of the system timer. The duration of one timer tick is 20ms. For example, 1 second takes 50 timer ticks. The system timer has a range of 0 to 4294967295, which means the timer can run for nearly 1000 days, before it resets to zero. |
Remarks |
The system timer can be (re)set with the SetSystemTime() function. Resetting the system timer doesn't affect the time or date of the operating system in any way. When only 1 timer is needed in your application, it's better to use the StartTimer() function. |
Example |
#include <stdio.h> #include "lib.h" #define HIGH_DELAY ( 13 * 5 ) //Note that these are prime numbers #define MEDIUM_DELAY ( 23 * 5 ) #define LOW_DELAY ( 37 * 5 ) void main( void ) { unsigned long current_time; unsigned long next_high_time; unsigned long next_medium_time; unsigned long next_low_time; SetSystemTime(0); //Reset system timer to zero next_high_time = HIGH_DELAY; next_medium_time = MEDIUM_DELAY; next_low_time = LOW_DELAY; printf("\n3 independent\ntimers using\nGetSystemTime"); for(;;) { current_time = GetSystemTime(); if(current_time>=next_low_time) { Sound( TSTANDARD, VSTANDARD, SLOW, 0); GoodReadLed(RED,10); next_low_time += LOW_DELAY; } if(current_time>=next_medium_time) { Sound( TSTANDARD, VSTANDARD, SMEDIUM, 0); GoodReadLed(ORANGE,10); next_medium_time += MEDIUM_DELAY; } if(current_time>=next_high_time) { Sound( TSTANDARD, VSTANDARD, SHIGH, 0); GoodReadLed(GREEN,10); next_high_time += HIGH_DELAY; } Idle(); } } |