Library to use the ultrasonic sensor

Dependents:   test_ultrasonic AEB Car_Simulator

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);
+}