c

Dependencies:   Servo ServoArm mbed

Fork of PES_PIXY_Official by zhaw_st16b_pes2_10

Committer:
beacon
Date:
Mon May 22 11:24:46 2017 +0000
Revision:
0:15a8480061e8
o

Who changed what in which revision?

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