Dependents:   NHK2020-main NHK2020-main1 NHK2020_main_ros1_2_25

Committer:
yuki0701
Date:
Wed Dec 11 04:57:08 2019 +0000
Revision:
10:c5ad8660c8fd
Parent:
7:9380ae04df1b
m

Who changed what in which revision?

UserRevisionLine numberNew contents of line
naoakiarimoto 0:61c786195f81 1 #include "uw.h"
naoakiarimoto 0:61c786195f81 2 #include "mbed.h"
naoakiarimoto 0:61c786195f81 3
naoakiarimoto 0:61c786195f81 4 Uw::Uw(PinName uw) : uw_(uw) {
naoakiarimoto 0:61c786195f81 5 dist = 0;
naoakiarimoto 0:61c786195f81 6 }
naoakiarimoto 0:61c786195f81 7
naoakiarimoto 0:61c786195f81 8 double Uw::get_dist(int rank){
naoakiarimoto 0:61c786195f81 9 double res;
naoakiarimoto 0:61c786195f81 10
naoakiarimoto 0:61c786195f81 11 uw_.output();
naoakiarimoto 0:61c786195f81 12 uw_=0;
naoakiarimoto 0:61c786195f81 13 wait_us(10);
naoakiarimoto 0:61c786195f81 14 uw_=1;
naoakiarimoto 7:9380ae04df1b 15 wait_us(5);
naoakiarimoto 0:61c786195f81 16 uw_=0;
naoakiarimoto 0:61c786195f81 17
naoakiarimoto 0:61c786195f81 18 uw_.input();
naoakiarimoto 0:61c786195f81 19 t.start();
yuki0701 10:c5ad8660c8fd 20 int flag = 0;
naoakiarimoto 0:61c786195f81 21 while(!uw_){
naoakiarimoto 0:61c786195f81 22 t.reset();
naoakiarimoto 0:61c786195f81 23 t.start();
yuki0701 10:c5ad8660c8fd 24 //printf("uw fail\n\r");
yuki0701 10:c5ad8660c8fd 25 flag++;
yuki0701 10:c5ad8660c8fd 26 if(flag>2000){
yuki0701 10:c5ad8660c8fd 27 flag = 0;
yuki0701 10:c5ad8660c8fd 28 return -1;
yuki0701 10:c5ad8660c8fd 29 }
naoakiarimoto 0:61c786195f81 30 }
naoakiarimoto 0:61c786195f81 31 do{
naoakiarimoto 0:61c786195f81 32 res=t.read_us();
naoakiarimoto 0:61c786195f81 33 }while(uw_);
naoakiarimoto 0:61c786195f81 34 t.reset();
naoakiarimoto 0:61c786195f81 35 t.stop();
naoakiarimoto 0:61c786195f81 36
naoakiarimoto 0:61c786195f81 37
naoakiarimoto 0:61c786195f81 38 dist=(res/2)/29.1; //[cm]=[m/us]/[1/(us*100)]
naoakiarimoto 0:61c786195f81 39 // = *343.6 //[cm]=[m/us]*[us*100]
naoakiarimoto 0:61c786195f81 40
naoakiarimoto 0:61c786195f81 41 switch(rank){
naoakiarimoto 0:61c786195f81 42 case 1:
naoakiarimoto 0:61c786195f81 43 return dist*10;
naoakiarimoto 0:61c786195f81 44 case 2:
naoakiarimoto 0:61c786195f81 45 return dist*0.01;
naoakiarimoto 0:61c786195f81 46 default:
naoakiarimoto 0:61c786195f81 47 return dist;
naoakiarimoto 0:61c786195f81 48 }
naoakiarimoto 0:61c786195f81 49 }