HOme Sheriff And Lamp

Dependencies:   CameraC328 HCSR04 SDFileSystem WIZnetInterface mbed

Fork of HoSAL by pi bae

Committer:
uasonice
Date:
Thu Aug 13 19:35:01 2015 +0000
Revision:
13:cefc034543a5
Parent:
8:28f7b30c1ae4
update: web server image view

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 uint8_t index_dist = 0;
uasonice 2:3c7526a1893a 24 long sum_dist[3];
uasonice 2:3c7526a1893a 25
uasonice 2:3c7526a1893a 26 int get_distance(HCSR04 *pH)
uasonice 0:35211a622a44 27 {
uasonice 2:3c7526a1893a 28
uasonice 0:35211a622a44 29 while (true) {
uasonice 0:35211a622a44 30 if( index_dist < 3){ //ryuhs74@20150810
uasonice 8:28f7b30c1ae4 31 sum_dist[index_dist] = pH->distance();;
uasonice 8:28f7b30c1ae4 32 //DM_fLN("sum_dist[%d] = %d", index_dist, sum_dist[index_dist]);
uasonice 0:35211a622a44 33 index_dist ++;
uasonice 0:35211a622a44 34 } else {
uasonice 0:35211a622a44 35 avg_dist = 0;
uasonice 0:35211a622a44 36 index_dist = 0;
uasonice 0:35211a622a44 37
uasonice 0:35211a622a44 38 for(int i =0; i<3;i++){
uasonice 0:35211a622a44 39 avg_dist += sum_dist[i];
uasonice 0:35211a622a44 40 }
uasonice 0:35211a622a44 41
uasonice 0:35211a622a44 42 avg_dist /= 3;
uasonice 2:3c7526a1893a 43 DM_fLN("avg: %d", avg_dist);
uasonice 0:35211a622a44 44 return avg_dist;
uasonice 0:35211a622a44 45 }
uasonice 8:28f7b30c1ae4 46 #if 1
uasonice 0:35211a622a44 47 wait_ms(10);
uasonice 0:35211a622a44 48 #else
uasonice 0:35211a622a44 49 break;
uasonice 0:35211a622a44 50 #endif
uasonice 0:35211a622a44 51 }
uasonice 0:35211a622a44 52 return 8192;
uasonice 0:35211a622a44 53 }
uasonice 0:35211a622a44 54 #endif // defined(USE_MEASURE_DISTANCE)
uasonice 0:35211a622a44 55