c
Dependencies: Servo ServoArm mbed
Fork of PES_PIXY_Official by
Sources/Ultraschall.cpp@1:fd3cef0f116d, 2017-05-23 (annotated)
- Committer:
- EpicG10
- Date:
- Tue May 23 16:24:49 2017 +0000
- Revision:
- 1:fd3cef0f116d
- Parent:
- 0:15a8480061e8
a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
beacon | 0:15a8480061e8 | 1 | #include "Ultraschall.h" |
beacon | 0:15a8480061e8 | 2 | #include "Robot.h" |
beacon | 0:15a8480061e8 | 3 | #include "Declarations.h" |
beacon | 0:15a8480061e8 | 4 | |
beacon | 0:15a8480061e8 | 5 | Ultraschall::Ultraschall(PinName TrigPin,PinName EchoPin): |
beacon | 0:15a8480061e8 | 6 | trigger(TrigPin), echo(EchoPin) |
beacon | 0:15a8480061e8 | 7 | { |
beacon | 0:15a8480061e8 | 8 | pulsetime.stop(); |
beacon | 0:15a8480061e8 | 9 | pulsetime.reset(); |
beacon | 0:15a8480061e8 | 10 | echo.rise(this,&Ultraschall::isr_rise); |
beacon | 0:15a8480061e8 | 11 | echo.fall(this,&Ultraschall::isr_fall); |
beacon | 0:15a8480061e8 | 12 | trigger=0; |
beacon | 0:15a8480061e8 | 13 | } |
beacon | 0:15a8480061e8 | 14 | |
beacon | 0:15a8480061e8 | 15 | Ultraschall::~Ultraschall() |
beacon | 0:15a8480061e8 | 16 | { |
beacon | 0:15a8480061e8 | 17 | } |
beacon | 0:15a8480061e8 | 18 | |
beacon | 0:15a8480061e8 | 19 | void Ultraschall::isr_rise(void) |
beacon | 0:15a8480061e8 | 20 | { |
beacon | 0:15a8480061e8 | 21 | pulsetime.start(); |
beacon | 0:15a8480061e8 | 22 | } |
beacon | 0:15a8480061e8 | 23 | void Ultraschall::start(void) |
beacon | 0:15a8480061e8 | 24 | { |
beacon | 0:15a8480061e8 | 25 | trigger=1; |
beacon | 0:15a8480061e8 | 26 | wait_us(10); |
beacon | 0:15a8480061e8 | 27 | trigger=0; |
beacon | 0:15a8480061e8 | 28 | } |
beacon | 0:15a8480061e8 | 29 | |
beacon | 0:15a8480061e8 | 30 | void Ultraschall::isr_fall(void) |
beacon | 0:15a8480061e8 | 31 | { |
beacon | 0:15a8480061e8 | 32 | pulsetime.stop(); |
beacon | 0:15a8480061e8 | 33 | pulsedur = pulsetime.read_us(); |
beacon | 0:15a8480061e8 | 34 | distance= (pulsedur*343)/20000; |
beacon | 0:15a8480061e8 | 35 | pulsetime.reset(); |
beacon | 0:15a8480061e8 | 36 | } |
beacon | 0:15a8480061e8 | 37 | |
beacon | 0:15a8480061e8 | 38 | void Ultraschall::rise (void (*fptr)(void)) |
beacon | 0:15a8480061e8 | 39 | { |
beacon | 0:15a8480061e8 | 40 | echo.rise(fptr); |
beacon | 0:15a8480061e8 | 41 | } |
beacon | 0:15a8480061e8 | 42 | void Ultraschall::fall (void (*fptr)(void)) |
beacon | 0:15a8480061e8 | 43 | { |
beacon | 0:15a8480061e8 | 44 | echo.fall(fptr); |
beacon | 0:15a8480061e8 | 45 | } |
beacon | 0:15a8480061e8 | 46 | |
beacon | 0:15a8480061e8 | 47 | unsigned int Ultraschall::get_dist_cm() |
beacon | 0:15a8480061e8 | 48 | { |
beacon | 0:15a8480061e8 | 49 | return distance; |
beacon | 0:15a8480061e8 | 50 | } |
beacon | 0:15a8480061e8 | 51 | unsigned int Ultraschall::get_pulse_us() |
beacon | 0:15a8480061e8 | 52 | { |
beacon | 0:15a8480061e8 | 53 | return pulsedur; |
beacon | 0:15a8480061e8 | 54 | } |