yuto kawamura
/
MR2_2n_1_saku
sls
Diff: hcsr04/hcsr04.cpp
- Revision:
- 0:c1476d342c13
diff -r 000000000000 -r c1476d342c13 hcsr04/hcsr04.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hcsr04/hcsr04.cpp Fri Apr 26 11:34:13 2019 +0000 @@ -0,0 +1,54 @@ +#include "hcsr04.h" + +#define v_o 343 + +HCSR04::HCSR04(PinName TrigPin,PinName EchoPin): + trigger(TrigPin), echo(EchoPin) +{ + pulsetime.stop(); + pulsetime.reset(); + echo.rise(this,&HCSR04::isr_rise); + echo.fall(this,&HCSR04::isr_fall); + trigger=0; +} + +HCSR04::~HCSR04() +{ +} + +void HCSR04::isr_rise(void) +{ + pulsetime.start(); +} +void HCSR04::start(void) +{ + trigger=1; + wait_us(10); + trigger=0; +} + +void HCSR04::isr_fall(void) +{ + pulsetime.stop(); + pulsedur = pulsetime.read_us(); + distance= (pulsedur*v_o)/20000; + pulsetime.reset(); +} + +void HCSR04::rise (void (*fptr)(void)) +{ + echo.rise(fptr); +} +void HCSR04::fall (void (*fptr)(void)) +{ + echo.fall(fptr); +} + +float HCSR04::get_dist_cm() +{ + return distance; +} +float HCSR04::get_pulse_us() +{ + return pulsedur; +} \ No newline at end of file