示例#1
0
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;
}