1 sensor using RTOS Timer, another 2 over RTOS Semaphore

Dependents:   Autonomous_quadcopter

Fork of HCSR04 by Antoniolinux B.

hcsr04.cpp

Committer:
antoniolinux
Date:
2014-04-14
Revision:
0:86b2086be101
Child:
1:53657de3246f

File content as of revision 0:86b2086be101:

#include "hcsr04.h"
#include "mbed.h"
/*
*HCSR04.cpp
*/
HCSR04::HCSR04(PinName t, PinName e) : trig(t), echo(e) {}
 long HCSR04::echo_duration() {
        
    timer.reset();  //reset timer
    trig=0;   // trigger low 
    wait_us(2); //  wait 
    trig=1;   //  trigger high
    wait_us(10);
    trig=0;  // trigger low
         while(!echo); // start pulseIN
      timer.start();
     while(echo);
      timer.stop();
     return timer.read_us(); 
 
}
 
//return distance in cm 
long HCSR04::distance(){
    duration = echo_duration();
  distance_cm = (duration/2)/29.1  ;
        return distance_cm;

}