HOme Sheriff And Lamp
Dependencies: CameraC328 HCSR04 SDFileSystem WIZnetInterface mbed
Fork of HoSAL by
rev_Hcsr04.cpp@0:35211a622a44, 2015-08-11 (annotated)
- Committer:
- uasonice
- Date:
- Tue Aug 11 16:05:02 2015 +0000
- Revision:
- 0:35211a622a44
- Child:
- 2:3c7526a1893a
Initial: Home Sheriff and Lamp project
Who changed what in which revision?
User | Revision | Line number | New 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 | //HCSR04 sensor(D12, D11); |
uasonice | 0:35211a622a44 | 21 | extern HCSR04 sensor; |
uasonice | 0:35211a622a44 | 22 | |
uasonice | 0:35211a622a44 | 23 | int sum_dist[3]; |
uasonice | 0:35211a622a44 | 24 | int avg_dist = 0; |
uasonice | 0:35211a622a44 | 25 | int index_dist = 0; |
uasonice | 0:35211a622a44 | 26 | long distance_cm = 0; //ryuhs74@20150810 - Add |
uasonice | 0:35211a622a44 | 27 | |
uasonice | 0:35211a622a44 | 28 | #if defined(USE_MEASURE_DISTANCE) |
uasonice | 0:35211a622a44 | 29 | int get_distance(void) |
uasonice | 0:35211a622a44 | 30 | { |
uasonice | 0:35211a622a44 | 31 | |
uasonice | 0:35211a622a44 | 32 | while (true) { |
uasonice | 0:35211a622a44 | 33 | distance_cm = sensor.distance(); //ryuhs74@20150810 - cm 단위 측정 거리 return |
uasonice | 0:35211a622a44 | 34 | if( index_dist < 3){ //ryuhs74@20150810 |
uasonice | 0:35211a622a44 | 35 | sum_dist[index_dist] = distance_cm; |
uasonice | 0:35211a622a44 | 36 | DM_fLN("sum_dist[%d] = %d", index_dist, sum_dist[index_dist]); |
uasonice | 0:35211a622a44 | 37 | index_dist ++; |
uasonice | 0:35211a622a44 | 38 | } else { |
uasonice | 0:35211a622a44 | 39 | avg_dist = 0; |
uasonice | 0:35211a622a44 | 40 | index_dist = 0; |
uasonice | 0:35211a622a44 | 41 | |
uasonice | 0:35211a622a44 | 42 | for(int i =0; i<3;i++){ |
uasonice | 0:35211a622a44 | 43 | avg_dist += sum_dist[i]; |
uasonice | 0:35211a622a44 | 44 | } |
uasonice | 0:35211a622a44 | 45 | |
uasonice | 0:35211a622a44 | 46 | avg_dist /= 3; |
uasonice | 0:35211a622a44 | 47 | return avg_dist; |
uasonice | 0:35211a622a44 | 48 | } |
uasonice | 0:35211a622a44 | 49 | #if 0 |
uasonice | 0:35211a622a44 | 50 | wait_ms(10); |
uasonice | 0:35211a622a44 | 51 | #else |
uasonice | 0:35211a622a44 | 52 | break; |
uasonice | 0:35211a622a44 | 53 | #endif |
uasonice | 0:35211a622a44 | 54 | } |
uasonice | 0:35211a622a44 | 55 | return 8192; |
uasonice | 0:35211a622a44 | 56 | } |
uasonice | 0:35211a622a44 | 57 | #endif // defined(USE_MEASURE_DISTANCE) |
uasonice | 0:35211a622a44 | 58 |