Go to the documentation of this file.00001 #include <stdio.h>
00002 #include <sys/time.h>
00003 #include <time.h>
00004 #include <unistd.h>
00005
00006 #include "mytime.h"
00007
00008 long double mseconds;
00009
00010
00011 unsigned long GetCurrentTimeInMilliSec(void)
00012 {
00013 struct timeval tv;
00014 unsigned long milliseconds;
00015 gettimeofday(&tv, NULL);
00016 milliseconds = tv.tv_sec * 1000 + tv.tv_usec / 1000;
00017 return milliseconds;
00018 }
00019
00020
00021
00022 long double Get_mtime_diff(int timer_number)
00023 {
00024 static double prev_clock[NR_TIMER];
00025 static int first_time = 1;
00026 double new_clock, clock_diff;
00027 int i;
00028
00029 if (first_time) {
00030 new_clock = GetCurrentTimeInMilliSec();
00031 for (i = 0; i < NR_TIMER; i++) {
00032 prev_clock[i] = new_clock;
00033 }
00034 clock_diff = new_clock;
00035 first_time = 0;
00036 }
00037 else {
00038 new_clock = GetCurrentTimeInMilliSec();
00039 clock_diff = new_clock - prev_clock[timer_number];
00040 if (timer_number != (NR_TIMER - 1)) prev_clock[timer_number] = new_clock;
00041 }
00042
00043 return(clock_diff);
00044 }
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 void mydelay (unsigned long msec)
00057 {
00058 unsigned long start_clock, cur_clock;
00059
00060 start_clock = GetCurrentTimeInMilliSec();
00061
00062 do {
00063 cur_clock = GetCurrentTimeInMilliSec();
00064 } while ((cur_clock - start_clock) < msec);
00065
00066 }