bertl14
distance.cpp@1:5c52865b8204, 2015-05-05 (annotated)
- Committer:
- stueckler
- Date:
- Tue May 05 19:19:23 2015 +0000
- Revision:
- 1:5c52865b8204
- Parent:
- 0:fe46fe696543
mbed
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
stueckler | 0:fe46fe696543 | 1 | // HC-SR04 Device |
stueckler | 0:fe46fe696543 | 2 | #include "distance.h" |
stueckler | 0:fe46fe696543 | 3 | #include "mbed.h" |
stueckler | 0:fe46fe696543 | 4 | |
stueckler | 0:fe46fe696543 | 5 | Timer pulsetime; |
stueckler | 0:fe46fe696543 | 6 | DigitalOut trigger(p21); |
stueckler | 0:fe46fe696543 | 7 | InterruptIn echo(p22); |
stueckler | 0:fe46fe696543 | 8 | unsigned int pulsedur; |
stueckler | 0:fe46fe696543 | 9 | unsigned int distance; |
stueckler | 0:fe46fe696543 | 10 | |
stueckler | 0:fe46fe696543 | 11 | void isr_rise(void) |
stueckler | 0:fe46fe696543 | 12 | { |
stueckler | 0:fe46fe696543 | 13 | pulsetime.start(); |
stueckler | 0:fe46fe696543 | 14 | } |
stueckler | 0:fe46fe696543 | 15 | |
stueckler | 0:fe46fe696543 | 16 | void isr_fall(void) |
stueckler | 0:fe46fe696543 | 17 | { |
stueckler | 0:fe46fe696543 | 18 | pulsetime.stop(); |
stueckler | 0:fe46fe696543 | 19 | pulsedur = pulsetime.read_us(); |
stueckler | 0:fe46fe696543 | 20 | distance= (pulsedur*343)/20000; |
stueckler | 0:fe46fe696543 | 21 | pulsetime.reset(); |
stueckler | 0:fe46fe696543 | 22 | } |
stueckler | 0:fe46fe696543 | 23 | |
stueckler | 0:fe46fe696543 | 24 | unsigned int getDist() //cm |
stueckler | 0:fe46fe696543 | 25 | { |
stueckler | 0:fe46fe696543 | 26 | // init |
stueckler | 0:fe46fe696543 | 27 | pulsetime.stop(); |
stueckler | 0:fe46fe696543 | 28 | pulsetime.reset(); |
stueckler | 0:fe46fe696543 | 29 | echo.rise(&isr_rise); |
stueckler | 0:fe46fe696543 | 30 | echo.fall(&isr_fall); |
stueckler | 0:fe46fe696543 | 31 | trigger=0; |
stueckler | 0:fe46fe696543 | 32 | |
stueckler | 0:fe46fe696543 | 33 | // start |
stueckler | 0:fe46fe696543 | 34 | trigger=1; |
stueckler | 0:fe46fe696543 | 35 | wait_us(10); |
stueckler | 0:fe46fe696543 | 36 | trigger=0; |
stueckler | 0:fe46fe696543 | 37 | wait_us(10); |
stueckler | 0:fe46fe696543 | 38 | |
stueckler | 0:fe46fe696543 | 39 | return distance; |
stueckler | 0:fe46fe696543 | 40 | } |