int main() { //init the wiringPi wiringPiSetup(); piHiPri(99); //set up pin directions pinMode(US_TRIGGER_PIN, OUTPUT); pinMode(US_ECHO_PIN, INPUT); digitalWrite(US_TRIGGER_PIN, 0); //set up pin pullups pullUpDnControl(US_TRIGGER_PIN, PUD_OFF); pullUpDnControl(US_ECHO_PIN, PUD_OFF); printf("\nGPIO config done.\r\n\r\n"); printf("\nULTRASONIC MEASURE.\r\n\r\n"); wiringPiISR (US_ECHO_PIN,INT_EDGE_RISING , echoArrived); doTrigger(); gettimeofday(&t1, NULL); waitEcho(); gettimeofday(&t2, NULL); elapsedTime = (double)(t2.tv_usec - t1.tv_usec); printf("\nULTRASONIC MEASURE DONE.\r\n\r\n"); printf("\nTIME %f us\r\n", elapsedTime); return 0; }
unsigned long UltrasonicProximitySensor::getDistanceInCm() const { unsigned long ditance_in_cm = 0; sendTrigger(); ditance_in_cm = waitEcho(); if (ditance_in_cm <= 0 || ditance_in_cm > _max_distance_in_cm) { return 0; } return ditance_in_cm; }