GetSystemTime

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