view linux/timer-lx.c @ 22:4babbd564f1c

added install patch by Dariusz Pietrzak
author arpi_esp
date Fri, 02 Mar 2001 19:45:10 +0000
parents 3b5f5d1c5041
children fb1fc94eaff0
line wrap: on
line source

// Precise timer routines for LINUX  (C) LGB & A'rpi/ASTRAL

#include <unistd.h>
#include <sys/time.h>

// Returns current time in seconds
unsigned int GetTimer(){
  struct timeval tv;
  struct timezone tz;
//  float s;
  gettimeofday(&tv,&tz);
//  s=tv.tv_usec;s*=0.000001;s+=tv.tv_sec;
  return (tv.tv_sec*1000000+tv.tv_usec);
}  

// Returns current time in microseconds
int uGetTimer(){
  struct timeval tv;
  struct timezone tz;
  gettimeofday(&tv,&tz);
  return (int)(tv.tv_usec+1000000*tv.tv_sec);
}  

static unsigned int RelativeTime=0;

// Returns time spent between now and last call in seconds
float GetRelativeTime(){
unsigned int t,r;
  t=GetTimer();
//  t*=16;printf("time=%ud\n",t);
  r=t-RelativeTime;
  RelativeTime=t;
  return (float)r * 0.000001F;
}

// Initialize timer, must be called at least once at start
void InitTimer(){
  GetRelativeTime();
}


#if 0
void main(){
  float t=0;
  InitTimer();
  while(1){ t+=GetRelativeTime();printf("time= %10.6f\r",t);fflush(stdout); }
}
#endif