|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
-
- #include <stdio.h>
- #include <unistd.h>
- #include <wiringPi.h>
-
- #include <time.h>
- #include <sys/types.h>
- #include <sys/time.h>
-
- #define CYCLES 1000
- #define DELAY 99
-
- int main()
- {
- int x ;
- struct timeval t1, t2 ;
- long long t ;
- unsigned int max, min ;
-
- unsigned int values [CYCLES] ;
-
- max = 0 ;
- min = 1000000 ;
-
- if (wiringPiSetup () == -1)
- return 1 ;
-
- piHiPri (10) ;
- sleep (1) ;
-
- // Baseline test
-
- gettimeofday (&t1, NULL) ;
- gettimeofday (&t2, NULL) ;
-
- t = t2.tv_usec - t1.tv_usec ;
- printf ("Baseline test: %lld\n", t);
-
- for (x = 0 ; x < CYCLES ; ++x)
- {
- gettimeofday (&t1, NULL) ;
- delayMicroseconds (DELAY) ;
- gettimeofday (&t2, NULL) ;
-
- t = t2.tv_usec - t1.tv_usec ;
- if (t > max) max = t ;
- if (t < min) min = t ;
- values [x] = t ;
- }
-
- printf ("Done: Max: %d, min: %d\n", max, min) ;
-
- for (x = 0 ; x < CYCLES ; ++x)
- {
- printf ("%4d", values [x]) ;
- if (values [x] > DELAY)
- printf (".") ;
- else if (values [x] < DELAY)
- printf ("-") ;
- else
- printf (" ") ;
- if (((x + 1) % 20) == 0)
- printf ("\n") ;
- }
- printf ("\n") ;
-
- return 0 ;
- }
|