bertl14

distance.cpp

Committer:
stueckler
Date:
2015-05-05
Revision:
1:5c52865b8204
Parent:
0:fe46fe696543

File content as of revision 1:5c52865b8204:

// HC-SR04 Device
#include "distance.h"
#include "mbed.h"

Timer pulsetime;
DigitalOut  trigger(p21);
InterruptIn echo(p22);
unsigned int pulsedur;
unsigned int distance;

void isr_rise(void)
{
    pulsetime.start();
}

void isr_fall(void)
{
    pulsetime.stop();
    pulsedur = pulsetime.read_us();
    distance= (pulsedur*343)/20000;
    pulsetime.reset();
}

unsigned int getDist() //cm
{
    // init   
    pulsetime.stop();
    pulsetime.reset();
    echo.rise(&isr_rise);
    echo.fall(&isr_fall);
    trigger=0;
    
    // start
    trigger=1;
    wait_us(10);
    trigger=0; 
    wait_us(10);
    
    return distance;
}