This is a very simple guide, reviewing the steps required to get Blinky working on an Mbed OS platform.
Dependencies: mbed Adafruit_GFX
ultrasonic.h@95:250afd53b710, 2019-06-08 (annotated)
- Committer:
- ParkChunMyong
- Date:
- Sat Jun 08 12:00:38 2019 +0000
- Revision:
- 95:250afd53b710
first init
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ParkChunMyong | 95:250afd53b710 | 1 | #ifndef MBED_ULTRASONIC_H |
ParkChunMyong | 95:250afd53b710 | 2 | #define MBED_ULTRASONIC_H |
ParkChunMyong | 95:250afd53b710 | 3 | |
ParkChunMyong | 95:250afd53b710 | 4 | #include "mbed.h" |
ParkChunMyong | 95:250afd53b710 | 5 | |
ParkChunMyong | 95:250afd53b710 | 6 | class Ultrasonic |
ParkChunMyong | 95:250afd53b710 | 7 | { |
ParkChunMyong | 95:250afd53b710 | 8 | public: |
ParkChunMyong | 95:250afd53b710 | 9 | /**iniates the class with the specified trigger pin, echo pin, update speed and timeout**/ |
ParkChunMyong | 95:250afd53b710 | 10 | Ultrasonic(PinName trigPin, PinName echoPin, float timeout = 0.1, bool mode = false, float time = 0.1); |
ParkChunMyong | 95:250afd53b710 | 11 | |
ParkChunMyong | 95:250afd53b710 | 12 | ~Ultrasonic(); |
ParkChunMyong | 95:250afd53b710 | 13 | |
ParkChunMyong | 95:250afd53b710 | 14 | // generate 10 us trig signal |
ParkChunMyong | 95:250afd53b710 | 15 | void trig(void); |
ParkChunMyong | 95:250afd53b710 | 16 | |
ParkChunMyong | 95:250afd53b710 | 17 | // return distance in cm and return -1 in case of failure |
ParkChunMyong | 95:250afd53b710 | 18 | int getDistance(void); |
ParkChunMyong | 95:250afd53b710 | 19 | |
ParkChunMyong | 95:250afd53b710 | 20 | void calculateDistance(void); |
ParkChunMyong | 95:250afd53b710 | 21 | |
ParkChunMyong | 95:250afd53b710 | 22 | // return the echo pulse duration in us and return -1 in case of failure |
ParkChunMyong | 95:250afd53b710 | 23 | int getPulseDuration(void); |
ParkChunMyong | 95:250afd53b710 | 24 | |
ParkChunMyong | 95:250afd53b710 | 25 | // get a status whether measurement is done or not |
ParkChunMyong | 95:250afd53b710 | 26 | int getStatus(void); |
ParkChunMyong | 95:250afd53b710 | 27 | |
ParkChunMyong | 95:250afd53b710 | 28 | // clear the status that represents measurement-done. |
ParkChunMyong | 95:250afd53b710 | 29 | void clearStatus(void); |
ParkChunMyong | 95:250afd53b710 | 30 | |
ParkChunMyong | 95:250afd53b710 | 31 | // stop measuring |
ParkChunMyong | 95:250afd53b710 | 32 | void pauseMeasure(void); |
ParkChunMyong | 95:250afd53b710 | 33 | |
ParkChunMyong | 95:250afd53b710 | 34 | |
ParkChunMyong | 95:250afd53b710 | 35 | void setMode(bool mode); |
ParkChunMyong | 95:250afd53b710 | 36 | |
ParkChunMyong | 95:250afd53b710 | 37 | void printDistance(float interval); |
ParkChunMyong | 95:250afd53b710 | 38 | |
ParkChunMyong | 95:250afd53b710 | 39 | |
ParkChunMyong | 95:250afd53b710 | 40 | private: |
ParkChunMyong | 95:250afd53b710 | 41 | DigitalOut _trig; |
ParkChunMyong | 95:250afd53b710 | 42 | InterruptIn _echo; |
ParkChunMyong | 95:250afd53b710 | 43 | Timer _timer; |
ParkChunMyong | 95:250afd53b710 | 44 | Timeout _timeout; |
ParkChunMyong | 95:250afd53b710 | 45 | Ticker _t; |
ParkChunMyong | 95:250afd53b710 | 46 | float _toVal; // timeout value in sec, or retriig time in sec if repeat == true |
ParkChunMyong | 95:250afd53b710 | 47 | float _repeatD; |
ParkChunMyong | 95:250afd53b710 | 48 | bool _repeat; |
ParkChunMyong | 95:250afd53b710 | 49 | int _distance; |
ParkChunMyong | 95:250afd53b710 | 50 | int _pulseDuration; |
ParkChunMyong | 95:250afd53b710 | 51 | int _start; |
ParkChunMyong | 95:250afd53b710 | 52 | int _end; |
ParkChunMyong | 95:250afd53b710 | 53 | int _break; |
ParkChunMyong | 95:250afd53b710 | 54 | void _startT(void); |
ParkChunMyong | 95:250afd53b710 | 55 | void _endT(void); |
ParkChunMyong | 95:250afd53b710 | 56 | void _timeout_cb(void); |
ParkChunMyong | 95:250afd53b710 | 57 | int _done; // end of measure |
ParkChunMyong | 95:250afd53b710 | 58 | RawSerial _pc; |
ParkChunMyong | 95:250afd53b710 | 59 | }; |
ParkChunMyong | 95:250afd53b710 | 60 | #endif /* ifndef MBED_ULTRASONIC_H */ |
ParkChunMyong | 95:250afd53b710 | 61 |