q
Dependents: NHK2020-main NHK2020-main1 NHK2020_main_ros1_2_25
uw.cpp@10:c5ad8660c8fd, 2019-12-11 (annotated)
- Committer:
- yuki0701
- Date:
- Wed Dec 11 04:57:08 2019 +0000
- Revision:
- 10:c5ad8660c8fd
- Parent:
- 7:9380ae04df1b
m
Who changed what in which revision?
User | Revision | Line number | New 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 | } |