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