sls

Dependencies:   mbed

Committer:
yuto17320508
Date:
Mon Apr 29 07:02:33 2019 +0000
Revision:
4:96f38805f055
Parent:
0:c1476d342c13
ss

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eri 0:c1476d342c13 1 #include "hcsr04.h"
eri 0:c1476d342c13 2
eri 0:c1476d342c13 3 #define v_o 343
eri 0:c1476d342c13 4
eri 0:c1476d342c13 5 HCSR04::HCSR04(PinName TrigPin,PinName EchoPin):
eri 0:c1476d342c13 6 trigger(TrigPin), echo(EchoPin)
eri 0:c1476d342c13 7 {
eri 0:c1476d342c13 8 pulsetime.stop();
eri 0:c1476d342c13 9 pulsetime.reset();
eri 0:c1476d342c13 10 echo.rise(this,&HCSR04::isr_rise);
eri 0:c1476d342c13 11 echo.fall(this,&HCSR04::isr_fall);
eri 0:c1476d342c13 12 trigger=0;
eri 0:c1476d342c13 13 }
eri 0:c1476d342c13 14
eri 0:c1476d342c13 15 HCSR04::~HCSR04()
eri 0:c1476d342c13 16 {
eri 0:c1476d342c13 17 }
eri 0:c1476d342c13 18
eri 0:c1476d342c13 19 void HCSR04::isr_rise(void)
eri 0:c1476d342c13 20 {
eri 0:c1476d342c13 21 pulsetime.start();
eri 0:c1476d342c13 22 }
eri 0:c1476d342c13 23 void HCSR04::start(void)
eri 0:c1476d342c13 24 {
eri 0:c1476d342c13 25 trigger=1;
eri 0:c1476d342c13 26 wait_us(10);
eri 0:c1476d342c13 27 trigger=0;
eri 0:c1476d342c13 28 }
eri 0:c1476d342c13 29
eri 0:c1476d342c13 30 void HCSR04::isr_fall(void)
eri 0:c1476d342c13 31 {
eri 0:c1476d342c13 32 pulsetime.stop();
eri 0:c1476d342c13 33 pulsedur = pulsetime.read_us();
eri 0:c1476d342c13 34 distance= (pulsedur*v_o)/20000;
eri 0:c1476d342c13 35 pulsetime.reset();
eri 0:c1476d342c13 36 }
eri 0:c1476d342c13 37
eri 0:c1476d342c13 38 void HCSR04::rise (void (*fptr)(void))
eri 0:c1476d342c13 39 {
eri 0:c1476d342c13 40 echo.rise(fptr);
eri 0:c1476d342c13 41 }
eri 0:c1476d342c13 42 void HCSR04::fall (void (*fptr)(void))
eri 0:c1476d342c13 43 {
eri 0:c1476d342c13 44 echo.fall(fptr);
eri 0:c1476d342c13 45 }
eri 0:c1476d342c13 46
eri 0:c1476d342c13 47 float HCSR04::get_dist_cm()
eri 0:c1476d342c13 48 {
eri 0:c1476d342c13 49 return distance;
eri 0:c1476d342c13 50 }
eri 0:c1476d342c13 51 float HCSR04::get_pulse_us()
eri 0:c1476d342c13 52 {
eri 0:c1476d342c13 53 return pulsedur;
eri 0:c1476d342c13 54 }