Library to use the ultrasonic sensor
Dependents: test_ultrasonic AEB Car_Simulator
Diff: Ultrasonic.cpp
- Revision:
- 4:8c97476a5ebf
- Parent:
- 3:9b06e5793b8b
- Child:
- 5:549b453cd6ce
diff -r 9b06e5793b8b -r 8c97476a5ebf Ultrasonic.cpp --- a/Ultrasonic.cpp Sun Jun 05 12:23:48 2016 +0000 +++ b/Ultrasonic.cpp Sun Jun 05 14:29:33 2016 +0000 @@ -4,22 +4,14 @@ Ultrasonic::Ultrasonic(PinName trigger, PinName echo): _trigger(trigger) , _echo(echo) { - //_trigger = trigger; - //_echo = echo; Ultrasonic_init(); } - - -/* -* Call this function and it will return the distance in centimeter -*/ int Ultrasonic::read_cm() { return DistanceCM; } - void Ultrasonic::start() { timer.start(); @@ -27,35 +19,33 @@ void Ultrasonic::stop() { - DistanceCM = timer.read_us()/58; + DistanceCM = int(timer.read_us()/58); timer.stop(); - //pc.printf("Distance: %f \n", DistanceCM); timer.reset(); timeout.detach(); } -void Ultrasonic::trig() -{ - timeout.attach(this, this.timeout_err, 0.05); - _trigger = 1; - wait_us(10); - _trigger = 0; -} - - -void Ultrasonic::Ultrasonic_init() -{ - DistanceCM = 0; - timer.reset(); - _echo.rise(&Ultrasonic::start); - _echo.fall(&stop); - tick.attach(&trig,0.06); -} - void Ultrasonic::timeout_err() { // Timeout elapsed -> there is some problem // out the distance to zero to highligth error DistanceCM = 0; -} \ No newline at end of file +} + +void Ultrasonic::trig() +{ + timeout.attach(this, &Ultrasonic::timeout_err, 0.05); + _trigger = 1; + wait_us(10); + _trigger = 0; +} + +void Ultrasonic::Ultrasonic_init() +{ + DistanceCM = 0; + timer.reset(); + _echo.rise(this,&Ultrasonic::start); + _echo.fall(this,&Ultrasonic::stop); + tick.attach(this,&Ultrasonic::trig,0.06); +}