Updated version of the library to deal with the constructor without onUpdate callback function.
Fork of HC_SR04_Ultrasonic_Library by
ultrasonic.h
- Committer:
- akabla
- Date:
- 2018-04-02
- Revision:
- 5:abbb418bf10f
- Parent:
- 2:cc1143d36567
File content as of revision 5:abbb418bf10f:
#ifndef MBED_ULTRASONIC_H #define MBED_ULTRASONIC_H #include "mbed.h" class ultrasonic { public: /**iniates the class with the specified trigger pin, echo pin, update speed and timeout**/ ultrasonic(PinName trigPin, PinName echoPin, float updateSpeed, float timeout); /**iniates the class with the specified trigger pin, echo pin, update speed, timeout and method to call when the distance changes**/ ultrasonic(PinName trigPin, PinName echoPin, float updateSpeed, float timeout, void onUpdate(int)); /** returns the last measured distance**/ int getCurrentDistance(void); /**pauses measuring the distance**/ void pauseUpdates(void); /**starts mesuring the distance**/ void startUpdates(void); /**attachs the method to be called when the distances changes**/ void attachOnUpdate(void method(int)); /**changes the speed at which updates are made**/ void changeUpdateSpeed(float updateSpeed); /**gets whether the distance has been changed since the last call of isUpdated() or checkDistance()**/ int isUpdated(void); /**gets the speed at which updates are made**/ float getUpdateSpeed(void); /**call this as often as possible in your code, eg. at the end of a while(1) loop, and it will check whether the method you have attached needs to be called**/ void checkDistance(void); private: DigitalOut _trig; InterruptIn _echo; Timer _t; Timeout _tout; int _distance; float _updateSpeed; int start; int end; volatile int done; void (*_onUpdateMethod)(int); void _startT(void); void _updateDist(void); void _startTrig(void); float _timeout; int d; }; #endif