ave

Dependencies:   QEI TextLCD mbed

Committer:
com3
Date:
Thu Oct 17 01:49:27 2013 +0000
Revision:
0:3fd90568b788
ave

Who changed what in which revision?

UserRevisionLine numberNew contents of line
com3 0:3fd90568b788 1 #include "mbed.h"
com3 0:3fd90568b788 2 #include "ping.h"
com3 0:3fd90568b788 3
com3 0:3fd90568b788 4 //DigitalOut myled = LED1;
com3 0:3fd90568b788 5
com3 0:3fd90568b788 6 extern Timer timer2;
com3 0:3fd90568b788 7
com3 0:3fd90568b788 8 uint16_t ultrasonicVal[ALL_ULTRASONIC];
com3 0:3fd90568b788 9 double ultrasonicValue[ALL_ULTRASONIC] = {0};
com3 0:3fd90568b788 10
com3 0:3fd90568b788 11
com3 0:3fd90568b788 12 void Ultrasonic()
com3 0:3fd90568b788 13 {
com3 0:3fd90568b788 14 for(int i = 0 ; i < ALL_ULTRASONIC; i++){
com3 0:3fd90568b788 15
com3 0:3fd90568b788 16 uint8_t flag = 0;
com3 0:3fd90568b788 17
com3 0:3fd90568b788 18 DigitalOut PingPinOut(ultrasonic_pin[i]);
com3 0:3fd90568b788 19 PingPinOut = 1;
com3 0:3fd90568b788 20 wait_us(10);
com3 0:3fd90568b788 21 PingPinOut = 0;
com3 0:3fd90568b788 22 DigitalIn PingPin(ultrasonic_pin[i]);
com3 0:3fd90568b788 23 timer2.reset();
com3 0:3fd90568b788 24 while(PingPin == 0){
com3 0:3fd90568b788 25 if(timer2.read_us() > 1500){ //1.5ms以上応答なし
com3 0:3fd90568b788 26 ultrasonicValue[i] = PING_ERR;
com3 0:3fd90568b788 27 flag = 1;
com3 0:3fd90568b788 28 break;
com3 0:3fd90568b788 29 }
com3 0:3fd90568b788 30 }
com3 0:3fd90568b788 31
com3 0:3fd90568b788 32 timer2.reset();
com3 0:3fd90568b788 33 while(PingPin == 1){
com3 0:3fd90568b788 34 if((timer2.read_us() > 18500) || (flag == 1)){ //18.5ms以上のパルス
com3 0:3fd90568b788 35 ultrasonicValue[i] = PING_ERR;
com3 0:3fd90568b788 36 flag = 1;
com3 0:3fd90568b788 37 break;
com3 0:3fd90568b788 38 }
com3 0:3fd90568b788 39 }
com3 0:3fd90568b788 40
com3 0:3fd90568b788 41 if(flag == 0){
com3 0:3fd90568b788 42 ultrasonicValue[i] = timer2.read_us() / 1000000.0 / 2.0 * 340.0 * 1000.0; //mm MAX:3145
com3 0:3fd90568b788 43 ultrasonicVal[i] = (int)(ultrasonicValue[i] * 10.0);
com3 0:3fd90568b788 44 }else{
com3 0:3fd90568b788 45 ultrasonicVal[i] = PING_ERR;
com3 0:3fd90568b788 46 }
com3 0:3fd90568b788 47
com3 0:3fd90568b788 48 }
com3 0:3fd90568b788 49 }