Project

General

Profile

Revision 1292

Implemented turntable positions in BOM test.

View differences:

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