| 83 | |
| 84 | |
| 85 | double DurationTime(int Enge, int OUTpin, int IRQpin) { |
| 86 | struct timeval now; |
| 87 | double fTime = 0.0; |
| 88 | |
| 89 | gStartTime = 0; |
| 90 | gEndTime = 0; |
| 91 | globalCounter = 0; |
| 92 | printf("Start\n"); |
| 93 | |
| 94 | if (INT_EDGE_RISING == Enge) { |
| 95 | digitalWrite(OUTpin, LOW); |
| 96 | wiringPiISR (IRQpin, INT_EDGE_RISING, &wfi) ; |
| 97 | sleep(1); |
| 98 | gettimeofday(&now, 0); |
| 99 | gStartTime = now.tv_sec*1000000LL + now.tv_usec; |
| 100 | digitalWrite(OUTpin, HIGH); |
| 101 | delay(20); |
| 102 | digitalWrite(OUTpin, LOW); |
| 103 | } else if (INT_EDGE_FALLING == Enge) { |
| 104 | digitalWrite(OUTpin, HIGH); |
| 105 | wiringPiISR (IRQpin, INT_EDGE_FALLING, &wfi) ; |
| 106 | sleep(1); |
| 107 | gettimeofday(&now, 0); |
| 108 | gStartTime = now.tv_sec*1000000LL + now.tv_usec; |
| 109 | digitalWrite(OUTpin, LOW); |
| 110 | } |
| 111 | |
| 112 | sleep(1); |
| 113 | fTime = (gEndTime - gStartTime); |
| 114 | printf("IRQ detect time %g usec\n\n", fTime); |
| 115 | wiringPiISRStop (IRQpin) ; |
| 116 | |
| 117 | return fTime; |
| 118 | } |
| 119 | |
| 120 | int main (void) |
| 121 | { |
no test coverage detected