Development and testing of ultrasonic distance measurement library for device HC-SR04.

Dependencies:   TextLCD_improved mbed Distance_HC_SR04

Branch:
CLASS_IMPLEMENTATION
Revision:
7:cdde5cc8b2b3
Parent:
6:1cec3aef9d86
--- a/Distance_HC_SR04.h	Mon Dec 21 20:56:52 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-#ifndef MBED_DISTANCE_HC_SR04_H
-#define MBED_DISTANCE_HC_SR04_H
- 
-#include "mbed.h"
- 
-#define TIMEOUT_DELAY_US    (25000)
-#define CALC_COEFF          (340.0f/(2.0f*1000.0f))
-#define TICKS_RANGE_MAX     (15000)
-#define TICKS_RANGE_MIN     (150)
-#define TRIG_PULSE_US       (50)
-
-typedef enum { IDLE, STARTED, COMPLETED, TIMEOUT, OUT_OF_RANGE_MIN, OUT_OF_RANGE_MAX, ERROR_SIG } Distance_HC_SR04_state;
-
-/** Distance_HC_SR04 class.
- *
- *  Library for interfacing ultrasonic distance measurement device HC-SR04.
- *  Functionality includes detection of error in echo signal, detection of timeout and limits of reliable measurement.
- *
- */
-class Distance_HC_SR04 {
-
-public:
-    Distance_HC_SR04(PinName trig, PinName echo, uint32_t tout_us = TIMEOUT_DELAY_US, float coeff = CALC_COEFF,
-            uint32_t tmin_us = TICKS_RANGE_MIN, uint32_t tmax_us = TICKS_RANGE_MAX);
-    void trigger(void);
-    Distance_HC_SR04_state getState(void);
-    void reset(void);
-    uint32_t getTicks(void);
-    float getDistance(void);
-    float getCoeff(void);
-    void setCoeff(float coeff);
-    float measureDistance(void);
-    uint32_t measureTicks(void);
-
-    void _tout(void);
-    void _rising(void);
-    void _falling(void);
-
-private:
-    DigitalOut  _trig;
-    InterruptIn _echo;
-    uint32_t    _tout_us;
-    float       _coeff;
-    uint32_t    _tmin_us;
-    uint32_t    _tmax_us;
-
-    Timer       _timer;
-    Timeout     _timeout;
-
-    volatile Distance_HC_SR04_state _state;
-    uint32_t                        _ticks_us;
-};
- 
-#endif
\ No newline at end of file