bertl14

Committer:
stueckler
Date:
Tue May 05 19:19:23 2015 +0000
Revision:
1:5c52865b8204
Parent:
0:fe46fe696543
mbed

Who changed what in which revision?

UserRevisionLine numberNew 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 }