HOme Sheriff And Lamp

Dependencies:   CameraC328 HCSR04 SDFileSystem WIZnetInterface mbed

Fork of HoSAL by pi bae

Committer:
uasonice
Date:
Tue Aug 11 16:30:37 2015 +0000
Revision:
2:3c7526a1893a
Parent:
0:35211a622a44
Child:
8:28f7b30c1ae4
update get_distance(); support param instance handle

Who changed what in which revision?

UserRevisionLine numberNew contents of line
uasonice 0:35211a622a44 1 /*
uasonice 0:35211a622a44 2 # coded by revival / uasonice (at) gmail.com
uasonice 0:35211a622a44 3 # DATE: 2015/08/10 / Mon Aug 10 21:21:36 KST 2015
uasonice 0:35211a622a44 4 #
uasonice 0:35211a622a44 5 # DESCRIPTION:
uasonice 0:35211a622a44 6 # copied from Ultrasonic by Ryu
uasonice 0:35211a622a44 7 #
uasonice 0:35211a622a44 8 */
uasonice 0:35211a622a44 9
uasonice 0:35211a622a44 10 #include "mbed.h"
uasonice 0:35211a622a44 11 #include <stdio.h>
uasonice 0:35211a622a44 12 #include <string.h>
uasonice 0:35211a622a44 13
uasonice 0:35211a622a44 14 #define DEBUG_TYPE 1
uasonice 0:35211a622a44 15 #define P_ uart.printf
uasonice 0:35211a622a44 16 #include "rev_config.h"
uasonice 0:35211a622a44 17
uasonice 0:35211a622a44 18 #include "rev_Hcsr04.h"
uasonice 0:35211a622a44 19
uasonice 0:35211a622a44 20
uasonice 0:35211a622a44 21 #if defined(USE_MEASURE_DISTANCE)
uasonice 2:3c7526a1893a 22 long avg_dist = 0;
uasonice 2:3c7526a1893a 23 long distance_cm = 0; //ryuhs74@20150810 - Add
uasonice 2:3c7526a1893a 24 uint8_t index_dist = 0;
uasonice 2:3c7526a1893a 25 long sum_dist[3];
uasonice 2:3c7526a1893a 26
uasonice 2:3c7526a1893a 27 int get_distance(HCSR04 *pH)
uasonice 0:35211a622a44 28 {
uasonice 2:3c7526a1893a 29
uasonice 0:35211a622a44 30 while (true) {
uasonice 2:3c7526a1893a 31 distance_cm = pH->distance(); //ryuhs74@20150810 - cm 단위 측정 거리 return
uasonice 0:35211a622a44 32 if( index_dist < 3){ //ryuhs74@20150810
uasonice 0:35211a622a44 33 sum_dist[index_dist] = distance_cm;
uasonice 0:35211a622a44 34 DM_fLN("sum_dist[%d] = %d", index_dist, sum_dist[index_dist]);
uasonice 0:35211a622a44 35 index_dist ++;
uasonice 0:35211a622a44 36 } else {
uasonice 0:35211a622a44 37 avg_dist = 0;
uasonice 0:35211a622a44 38 index_dist = 0;
uasonice 0:35211a622a44 39
uasonice 0:35211a622a44 40 for(int i =0; i<3;i++){
uasonice 0:35211a622a44 41 avg_dist += sum_dist[i];
uasonice 0:35211a622a44 42 }
uasonice 0:35211a622a44 43
uasonice 0:35211a622a44 44 avg_dist /= 3;
uasonice 2:3c7526a1893a 45 DM_fLN("avg: %d", avg_dist);
uasonice 0:35211a622a44 46 return avg_dist;
uasonice 0:35211a622a44 47 }
uasonice 0:35211a622a44 48 #if 0
uasonice 0:35211a622a44 49 wait_ms(10);
uasonice 0:35211a622a44 50 #else
uasonice 0:35211a622a44 51 break;
uasonice 0:35211a622a44 52 #endif
uasonice 0:35211a622a44 53 }
uasonice 0:35211a622a44 54 return 8192;
uasonice 0:35211a622a44 55 }
uasonice 0:35211a622a44 56 #endif // defined(USE_MEASURE_DISTANCE)
uasonice 0:35211a622a44 57