PING Library

Committer:
mshoemaker
Date:
Thu Feb 11 03:47:41 2010 +0000
Revision:
0:ae8d48256ff1

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mshoemaker 0:ae8d48256ff1 1 #ifndef MBED_PING_H
mshoemaker 0:ae8d48256ff1 2 #define MBED_PING_H
mshoemaker 0:ae8d48256ff1 3 #include "mbed.h"
mshoemaker 0:ae8d48256ff1 4
mshoemaker 0:ae8d48256ff1 5 /* Class: PING
mshoemaker 0:ae8d48256ff1 6 * Abstraction for the PING Ultrasonic range finder
mshoemaker 0:ae8d48256ff1 7 *
mshoemaker 0:ae8d48256ff1 8 * Example:
mshoemaker 0:ae8d48256ff1 9 * > // Print measured distance
mshoemaker 0:ae8d48256ff1 10 * >
mshoemaker 0:ae8d48256ff1 11 * > #include "mbed.h"
mshoemaker 0:ae8d48256ff1 12 * > #include "PING.h"
mshoemaker 0:ae8d48256ff1 13 * >
mshoemaker 0:ae8d48256ff1 14 * > PING ping(p9);
mshoemaker 0:ae8d48256ff1 15 * >
mshoemaker 0:ae8d48256ff1 16 * > int main() {
mshoemaker 0:ae8d48256ff1 17 * > while(1) {
mshoemaker 0:ae8d48256ff1 18 * > printf("Measured : %.1f\n", ping.read());
mshoemaker 0:ae8d48256ff1 19 * > wait(0.2);
mshoemaker 0:ae8d48256ff1 20 * > }
mshoemaker 0:ae8d48256ff1 21 * > }
mshoemaker 0:ae8d48256ff1 22 */
mshoemaker 0:ae8d48256ff1 23 class PING
mshoemaker 0:ae8d48256ff1 24 {
mshoemaker 0:ae8d48256ff1 25 // Public functions
mshoemaker 0:ae8d48256ff1 26 public:
mshoemaker 0:ae8d48256ff1 27 /* Constructor: PING
mshoemaker 0:ae8d48256ff1 28 * Create a PING object, connected to the specified pins
mshoemaker 0:ae8d48256ff1 29 *
mshoemaker 0:ae8d48256ff1 30 * Variables:
mshoemaker 0:ae8d48256ff1 31 * trigger - Output to trigger the PING
mshoemaker 0:ae8d48256ff1 32 */
mshoemaker 0:ae8d48256ff1 33 PING(PinName trigger);
mshoemaker 0:ae8d48256ff1 34
mshoemaker 0:ae8d48256ff1 35 /* Function: read
mshoemaker 0:ae8d48256ff1 36 * A non-blocking function that will return the last measurement
mshoemaker 0:ae8d48256ff1 37 *
mshoemaker 0:ae8d48256ff1 38 * Variables:
mshoemaker 0:ae8d48256ff1 39 * returns - floating point representation in cm.
mshoemaker 0:ae8d48256ff1 40 */
mshoemaker 0:ae8d48256ff1 41 float read(void);
mshoemaker 0:ae8d48256ff1 42
mshoemaker 0:ae8d48256ff1 43 /* Function: read_in
mshoemaker 0:ae8d48256ff1 44 * A non-blocking function that will return the last measurement
mshoemaker 0:ae8d48256ff1 45 *
mshoemaker 0:ae8d48256ff1 46 * Variables:
mshoemaker 0:ae8d48256ff1 47 * returns - floating point representation in in.
mshoemaker 0:ae8d48256ff1 48 */
mshoemaker 0:ae8d48256ff1 49 float read_in(void);
mshoemaker 0:ae8d48256ff1 50
mshoemaker 0:ae8d48256ff1 51 /* Function: operator float
mshoemaker 0:ae8d48256ff1 52 * A short hand way of using the read function
mshoemaker 0:ae8d48256ff1 53 *
mshoemaker 0:ae8d48256ff1 54 * Example:
mshoemaker 0:ae8d48256ff1 55 * > float range = ping.read();
mshoemaker 0:ae8d48256ff1 56 * > float range = ping;
mshoemaker 0:ae8d48256ff1 57 * >
mshoemaker 0:ae8d48256ff1 58 * > if(ping.read() > 0.25) { ... }
mshoemaker 0:ae8d48256ff1 59 * > if(ping > 0.25) { ... }
mshoemaker 0:ae8d48256ff1 60 */
mshoemaker 0:ae8d48256ff1 61 operator float();
mshoemaker 0:ae8d48256ff1 62
mshoemaker 0:ae8d48256ff1 63 private :
mshoemaker 0:ae8d48256ff1 64 DigitalInOut _trigger;
mshoemaker 0:ae8d48256ff1 65 Timer _timer;
mshoemaker 0:ae8d48256ff1 66 Ticker _ticker;
mshoemaker 0:ae8d48256ff1 67 void _startRange(void);
mshoemaker 0:ae8d48256ff1 68 float _dist;
mshoemaker 0:ae8d48256ff1 69 };
mshoemaker 0:ae8d48256ff1 70
mshoemaker 0:ae8d48256ff1 71 #endif