HOme Sheriff And Lamp
Dependencies: CameraC328 HCSR04 SDFileSystem WIZnetInterface mbed
Fork of HoSAL by
rev_Hcsr04.cpp@8:28f7b30c1ae4, 2015-08-11 (annotated)
- Committer:
- uasonice
- Date:
- Tue Aug 11 19:20:46 2015 +0000
- Revision:
- 8:28f7b30c1ae4
- Parent:
- 2:3c7526a1893a
update: camera baud rate 38400; speed up U.sonic distance measure
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 | |
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 |