root / trunk / code / projects / colonet / utilities / robot_wireless_relay / bom.c @ 13
History | View | Annotate | Download (962 Bytes)
1 |
#include "bom.h" |
---|---|
2 |
|
3 |
|
4 |
const int lookup[16] = {7,6,5,0xe,1,4,3,2,0xf,0,0xd,8,0xc,0xb,9,0xa}; |
5 |
|
6 |
int getMaxBom(void) { |
7 |
int max_bom_temp = 0; |
8 |
int a, i, j, h;
|
9 |
h = 255;
|
10 |
|
11 |
for (j = 0; j < 16; j++) |
12 |
{ |
13 |
i = lookup[j]; |
14 |
|
15 |
if (i&8) |
16 |
output_high(MONK3); |
17 |
else
|
18 |
output_low(MONK3); |
19 |
|
20 |
if (i&4) |
21 |
output_high(MONK2); |
22 |
else
|
23 |
output_low(MONK2); |
24 |
|
25 |
if (i&2) |
26 |
output_high(MONK1); |
27 |
else
|
28 |
output_low(MONK1); |
29 |
|
30 |
if (i&1) |
31 |
output_high(MONK0); |
32 |
else
|
33 |
output_low(MONK0); |
34 |
|
35 |
a = analog8(MONKI); |
36 |
|
37 |
if (a < h)
|
38 |
{ |
39 |
h = a; |
40 |
max_bom_temp = j; |
41 |
} |
42 |
|
43 |
} |
44 |
|
45 |
return max_bom_temp;
|
46 |
} |
47 |
|
48 |
void bom_on(void) |
49 |
{ |
50 |
output_high(MONKL); |
51 |
|
52 |
} |
53 |
|
54 |
void bom_off(void) |
55 |
{ |
56 |
output_low(MONKL); |
57 |
} |
58 |
|
59 |
void output_high(int which) { |
60 |
digital_output(which, 1);
|
61 |
} |
62 |
|
63 |
void output_low(int which) { |
64 |
digital_output(which, 0);
|
65 |
} |
66 |
|