#include #include #include #include #include #include #define ECHOPIN 22 struct tm *loctime; time_t czas; struct timespec tim, tim1; float mark, space; void int_impuls(void) { if (digitalRead (ECHOPIN) == 1) { clock_gettime(CLOCK_REALTIME, &tim); if(tim.tv_nsec < tim1.tv_nsec) tim.tv_nsec= tim.tv_nsec+1000000000; space=(float)(tim.tv_nsec -tim1.tv_nsec)/1000000; } else { clock_gettime(CLOCK_REALTIME, &tim1); if(tim1.tv_nsec < tim.tv_nsec) tim1.tv_nsec= tim1.tv_nsec+1000000000; mark=(float)(tim1.tv_nsec -tim.tv_nsec)/1000000; printf(" \r"); printf ("Mark: %4.2f ms Space: %4.2f ms Period: %4.2f ms\r", mark, space, mark+space);fflush(0); } //printf("1: tim %d %d\n",tim.tv_nsec, tim1.tv_nsec); } int main (void) { setpriority(0,0,-20); if (wiringPiSetup () == -1) exit (1) ; pinMode (ECHOPIN, INPUT) ; wiringPiISR (ECHOPIN, INT_EDGE_BOTH, &int_impuls); for(;;) { } }