Revision 1292
Implemented turntable positions in BOM test.
trunk/code/projects/diagnostic_station/station/test_bom.c | ||
---|---|---|
7 | 7 |
|
8 | 8 |
static uint16_t bom_emitter_position (uint8_t num) |
9 | 9 |
{ |
10 |
// 0 is the robot facing the station (BOM #4 aligned with IBOM). |
|
11 |
// Positive is counter-clockwise on the bom (robot turning clockwise) |
|
12 |
|
|
13 |
// The difference in angle between two positions. 1024 steps on a full turn, 16 emitters/detectors. |
|
14 |
#define increment 1024/16 |
|
15 |
|
|
10 | 16 |
switch (num) |
11 | 17 |
{ |
12 |
case 0: return 100; break;
|
|
13 |
case 1: return 200; break;
|
|
14 |
case 2: return 300; break;
|
|
15 |
case 3: return 400; break;
|
|
16 |
case 4: return 500; break;
|
|
17 |
case 5: return 600; break;
|
|
18 |
case 6: return 700; break;
|
|
19 |
case 7: return 800; break;
|
|
20 |
case 8: return 900; break;
|
|
21 |
case 9: return 1000; break;
|
|
22 |
case 10: return 1100; break;
|
|
23 |
case 11: return 1200; break;
|
|
24 |
case 12: return 1300; break;
|
|
25 |
case 13: return 1400; break;
|
|
26 |
case 14: return 1500; break;
|
|
27 |
case 15: return 1600; break;
|
|
18 |
case 0: return (-4)*increment; break;
|
|
19 |
case 1: return (-3)*increment; break;
|
|
20 |
case 2: return (-2)*increment; break;
|
|
21 |
case 3: return (-1)*increment; break;
|
|
22 |
case 4: return ( 0)*increment; break;
|
|
23 |
case 5: return ( 1)*increment; break;
|
|
24 |
case 6: return ( 2)*increment; break;
|
|
25 |
case 7: return ( 3)*increment; break;
|
|
26 |
case 8: return ( 4)*increment; break;
|
|
27 |
case 9: return ( 5)*increment; break;
|
|
28 |
case 10: return ( 6)*increment; break;
|
|
29 |
case 11: return ( 7)*increment; break;
|
|
30 |
case 12: return ( 8)*increment; break;
|
|
31 |
case 13: return ( 9)*increment; break;
|
|
32 |
case 14: return (10)*increment; break;
|
|
33 |
case 15: return (11)*increment; break;
|
|
28 | 34 |
default: return 0; break; |
29 | 35 |
} |
36 |
#undef increment |
|
30 | 37 |
} |
31 | 38 |
|
32 | 39 |
static uint16_t bom_detector_position (uint8_t num) |
33 | 40 |
{ |
34 |
return bom_emitter_position (num)-50; |
|
41 |
// Austin sez: detectors and emitters are supposed to be parallel. |
|
42 |
return bom_emitter_position (num); |
|
35 | 43 |
} |
36 | 44 |
|
37 | 45 |
|
Also available in: Unified diff