Project

General

Profile

Statistics
| Revision:

root / branches / wireless / docs / libdragonfly / html / group__analog.html @ 1578

History | View | Annotate | Download (36.9 KB)

1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
<title>Colony: Analog</title>
4
<link href="tabs.css" rel="stylesheet" type="text/css">
5
<link href="doxygen.css" rel="stylesheet" type="text/css">
6
</head><body>
7
<!-- Generated by Doxygen 1.5.8 -->
8
<div class="navigation" id="top">
9
  <div class="tabs">
10
    <ul>
11
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
13
      <li><a href="modules.html"><span>Modules</span></a></li>
14
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
15
      <li><a href="files.html"><span>Files</span></a></li>
16
    </ul>
17
  </div>
18
</div>
19
<div class="contents">
20
<h1>Analog</h1><table border="0" cellpadding="0" cellspacing="0">
21
<tr><td></td></tr>
22
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
23
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structadc__t.html">adc_t</a></td></tr>
24

    
25
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Struct to hold the value of a particular analog port.  <a href="structadc__t.html#_details">More...</a><br></td></tr>
26
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
27
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g099995994c74b5fff8f7de4ff3eac550"></a><!-- doxytag: member="analog::AN0" ref="g099995994c74b5fff8f7de4ff3eac550" args="" -->
28
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g099995994c74b5fff8f7de4ff3eac550">AN0</a>&nbsp;&nbsp;&nbsp;0x00</td></tr>
29

    
30
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port 0. <br></td></tr>
31
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4903de2a52966c8dc2c20faf565d451d"></a><!-- doxytag: member="analog::AN1" ref="g4903de2a52966c8dc2c20faf565d451d" args="" -->
32
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g4903de2a52966c8dc2c20faf565d451d">AN1</a>&nbsp;&nbsp;&nbsp;0x01</td></tr>
33

    
34
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port 1. <br></td></tr>
35
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9b0754e893d69a1e69e856853f70da1f"></a><!-- doxytag: member="analog::AN2" ref="g9b0754e893d69a1e69e856853f70da1f" args="" -->
36
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g9b0754e893d69a1e69e856853f70da1f">AN2</a>&nbsp;&nbsp;&nbsp;0x02</td></tr>
37

    
38
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port 2. <br></td></tr>
39
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9f593faa38f1023698d74f03a457abe3"></a><!-- doxytag: member="analog::AN3" ref="g9f593faa38f1023698d74f03a457abe3" args="" -->
40
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g9f593faa38f1023698d74f03a457abe3">AN3</a>&nbsp;&nbsp;&nbsp;0x03</td></tr>
41

    
42
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port 3. <br></td></tr>
43
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdc95f1e9cdc00268d7bca5885052171f"></a><!-- doxytag: member="analog::AN4" ref="gdc95f1e9cdc00268d7bca5885052171f" args="" -->
44
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#gdc95f1e9cdc00268d7bca5885052171f">AN4</a>&nbsp;&nbsp;&nbsp;0x04</td></tr>
45

    
46
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port 4. <br></td></tr>
47
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g99ed455a0d536be03f12eba18ccff71b"></a><!-- doxytag: member="analog::AN5" ref="g99ed455a0d536be03f12eba18ccff71b" args="" -->
48
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g99ed455a0d536be03f12eba18ccff71b">AN5</a>&nbsp;&nbsp;&nbsp;0x05</td></tr>
49

    
50
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port 5. <br></td></tr>
51
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd63d6861c3fa5e606de5c18ada3b4d10"></a><!-- doxytag: member="analog::AN6" ref="gd63d6861c3fa5e606de5c18ada3b4d10" args="" -->
52
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#gd63d6861c3fa5e606de5c18ada3b4d10">AN6</a>&nbsp;&nbsp;&nbsp;0x06</td></tr>
53

    
54
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port 6. <br></td></tr>
55
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g277d706ee82bd70459b63e85489c7074"></a><!-- doxytag: member="analog::AN7" ref="g277d706ee82bd70459b63e85489c7074" args="" -->
56
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g277d706ee82bd70459b63e85489c7074">AN7</a>&nbsp;&nbsp;&nbsp;0x07</td></tr>
57

    
58
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port 7. <br></td></tr>
59
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g28b64348820dbb25c903d24f2e38a8a7"></a><!-- doxytag: member="analog::AN8" ref="g28b64348820dbb25c903d24f2e38a8a7" args="" -->
60
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g28b64348820dbb25c903d24f2e38a8a7">AN8</a>&nbsp;&nbsp;&nbsp;0x08</td></tr>
61

    
62
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port 8. <br></td></tr>
63
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2fb7e4f4e0ea1f172eef79ed1f92e15f"></a><!-- doxytag: member="analog::AN9" ref="g2fb7e4f4e0ea1f172eef79ed1f92e15f" args="" -->
64
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g2fb7e4f4e0ea1f172eef79ed1f92e15f">AN9</a>&nbsp;&nbsp;&nbsp;0x09</td></tr>
65

    
66
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port 9. <br></td></tr>
67
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc63caaf5f7a06a02522cb7f90d6c1959"></a><!-- doxytag: member="analog::AN10" ref="gc63caaf5f7a06a02522cb7f90d6c1959" args="" -->
68
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#gc63caaf5f7a06a02522cb7f90d6c1959">AN10</a>&nbsp;&nbsp;&nbsp;0x0A</td></tr>
69

    
70
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port 10. <br></td></tr>
71
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdfeb79b00aaef4734408a910838f7872"></a><!-- doxytag: member="analog::AN11" ref="gdfeb79b00aaef4734408a910838f7872" args="" -->
72
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#gdfeb79b00aaef4734408a910838f7872">AN11</a>&nbsp;&nbsp;&nbsp;0x0B</td></tr>
73

    
74
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port 11. <br></td></tr>
75
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7a50a07e69f38b6674b0494dfbc653f9"></a><!-- doxytag: member="analog::AN12" ref="g7a50a07e69f38b6674b0494dfbc653f9" args="" -->
76
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g7a50a07e69f38b6674b0494dfbc653f9">AN12</a>&nbsp;&nbsp;&nbsp;0x0C</td></tr>
77

    
78
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port 12. <br></td></tr>
79
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gbf80851ae45ddfe4bfdfc10541c255ad"></a><!-- doxytag: member="analog::AN13" ref="gbf80851ae45ddfe4bfdfc10541c255ad" args="" -->
80
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#gbf80851ae45ddfe4bfdfc10541c255ad">AN13</a>&nbsp;&nbsp;&nbsp;0x0D</td></tr>
81

    
82
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port 13. <br></td></tr>
83
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g817772a1db513b734dfe4475c3616061"></a><!-- doxytag: member="analog::AN14" ref="g817772a1db513b734dfe4475c3616061" args="" -->
84
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g817772a1db513b734dfe4475c3616061">AN14</a>&nbsp;&nbsp;&nbsp;0x0E</td></tr>
85

    
86
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port 14. <br></td></tr>
87
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g797adbadae057ff7aa766d84b4f180f9"></a><!-- doxytag: member="analog::AN15" ref="g797adbadae057ff7aa766d84b4f180f9" args="" -->
88
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g797adbadae057ff7aa766d84b4f180f9">AN15</a>&nbsp;&nbsp;&nbsp;0x0F</td></tr>
89

    
90
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port 15. <br></td></tr>
91
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga5e4dd5ac995c644e471ed80c706fa0b"></a><!-- doxytag: member="analog::BOM_PORT" ref="ga5e4dd5ac995c644e471ed80c706fa0b" args="" -->
92
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#ga5e4dd5ac995c644e471ed80c706fa0b">BOM_PORT</a>&nbsp;&nbsp;&nbsp;AN0</td></tr>
93

    
94
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">BOM_PORT analog port for BOM. <br></td></tr>
95
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3434ce39eaea22b46a0100b7fd3a6f47"></a><!-- doxytag: member="analog::EXT_MUX" ref="g3434ce39eaea22b46a0100b7fd3a6f47" args="" -->
96
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g3434ce39eaea22b46a0100b7fd3a6f47">EXT_MUX</a>&nbsp;&nbsp;&nbsp;AN7</td></tr>
97

    
98
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">EXT_MUX analog port. <br></td></tr>
99
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga6538d2deb002b8441891dc4e15cd104"></a><!-- doxytag: member="analog::WHEEL_PORT" ref="ga6538d2deb002b8441891dc4e15cd104" args="" -->
100
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#ga6538d2deb002b8441891dc4e15cd104">WHEEL_PORT</a>&nbsp;&nbsp;&nbsp;AN10</td></tr>
101

    
102
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port for the wheel. <br></td></tr>
103
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gadcd026a2c91fe96c8134619c87bb72a"></a><!-- doxytag: member="analog::BATT_PORT" ref="gadcd026a2c91fe96c8134619c87bb72a" args="" -->
104
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#gadcd026a2c91fe96c8134619c87bb72a">BATT_PORT</a>&nbsp;&nbsp;&nbsp;AN11</td></tr>
105

    
106
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog port for the battery voltage detector. <br></td></tr>
107
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga6c1c98c4f94b1589d6451a882ee3385"></a><!-- doxytag: member="analog::ADC_LOOP_RUNNING" ref="ga6c1c98c4f94b1589d6451a882ee3385" args="" -->
108
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#ga6c1c98c4f94b1589d6451a882ee3385">ADC_LOOP_RUNNING</a>&nbsp;&nbsp;&nbsp;1</td></tr>
109

    
110
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog loop status. ADC conversion running. <br></td></tr>
111
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g529d95be25ca6677f0ac4a512e48e767"></a><!-- doxytag: member="analog::ADC_LOOP_STOPPED" ref="g529d95be25ca6677f0ac4a512e48e767" args="" -->
112
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g529d95be25ca6677f0ac4a512e48e767">ADC_LOOP_STOPPED</a>&nbsp;&nbsp;&nbsp;0</td></tr>
113

    
114
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog loop status. No ADC conversion running. <br></td></tr>
115
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gcc93f5a70b7081637be3d30cc04cb4dd"></a><!-- doxytag: member="analog::ADC_START" ref="gcc93f5a70b7081637be3d30cc04cb4dd" args="" -->
116
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#gcc93f5a70b7081637be3d30cc04cb4dd">ADC_START</a>&nbsp;&nbsp;&nbsp;1</td></tr>
117

    
118
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog init parameter. Start the analog loop. <br></td></tr>
119
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g23aeca8ff9a59fe5f63da36004038c86"></a><!-- doxytag: member="analog::ADC_STOP" ref="g23aeca8ff9a59fe5f63da36004038c86" args="" -->
120
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g23aeca8ff9a59fe5f63da36004038c86">ADC_STOP</a>&nbsp;&nbsp;&nbsp;0</td></tr>
121

    
122
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Analog init parameter. Don't start the analog loop. <br></td></tr>
123
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga03e3669bcaf982e6861d3fcb71a9712"></a><!-- doxytag: member="analog::ADMUX_OPT" ref="ga03e3669bcaf982e6861d3fcb71a9712" args="" -->
124
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>ADMUX_OPT</b>&nbsp;&nbsp;&nbsp;0x60</td></tr>
125

    
126
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
127
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#gf998a4653bf62164fcc93b0f58796ab5">analog_init</a> (int start_conversion)</td></tr>
128

    
129
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize analog ports. Will start running a loop if start_conversion is ADC_START.  <a href="#gf998a4653bf62164fcc93b0f58796ab5"></a><br></td></tr>
130
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#gf1211040ce2c54f12f98df7d47a4eb27">analog8</a> (int which)</td></tr>
131

    
132
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns an 8-bit analog value from the look up table. Use this instead of analog_get8.  <a href="#gf1211040ce2c54f12f98df7d47a4eb27"></a><br></td></tr>
133
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g875bf8cb165a3a288eb1aa2ac06be4f3">analog10</a> (int which)</td></tr>
134

    
135
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns an 10-bit analog value from the look up table. Use this instead of analog_get10.  <a href="#g875bf8cb165a3a288eb1aa2ac06be4f3"></a><br></td></tr>
136
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g866f1b9a4d513ed0dc5fa8527486d7f9">analog_start_loop</a> (void)</td></tr>
137

    
138
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">starts the analog loop. Doesn't do anything if the loop is already running.  <a href="#g866f1b9a4d513ed0dc5fa8527486d7f9"></a><br></td></tr>
139
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g3bbeaef32b06f0c2ec5eee36e15f5514">analog_stop_loop</a> (void)</td></tr>
140

    
141
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stops the analog loop. Doesn't do anything if the loop is already stopped.  <a href="#g3bbeaef32b06f0c2ec5eee36e15f5514"></a><br></td></tr>
142
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#gb58a2677b8c151ca00bf9529b7d4bb81">analog_loop_status</a> (void)</td></tr>
143

    
144
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the status of the analog loop.  <a href="#gb58a2677b8c151ca00bf9529b7d4bb81"></a><br></td></tr>
145
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g1593f0ee57fea252a5ef0146004d7fa9">analog_get8</a> (int which)</td></tr>
146

    
147
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read an 8-bit number from an analog port. Loop must be stopped for this to work.  <a href="#g1593f0ee57fea252a5ef0146004d7fa9"></a><br></td></tr>
148
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g97e97c6d960441518b2572c42c941719">analog_get10</a> (int which)</td></tr>
149

    
150
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read a 10-bit number from an analog port. Loop must be stopped for this to work.  <a href="#g97e97c6d960441518b2572c42c941719"></a><br></td></tr>
151
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#g973e63eb508819a37efe3231b6a39550">wheel</a> (void)</td></tr>
152

    
153
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read the position of the wheel.  <a href="#g973e63eb508819a37efe3231b6a39550"></a><br></td></tr>
154
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog.html#gbc63da8e5431c1d15bc9a61749628f35">set_adc_mux</a> (int which)</td></tr>
155

    
156
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
157
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf220dcfd3a4fdac559ce568df224ef0c"></a><!-- doxytag: member="analog::analog_initd" ref="gf220dcfd3a4fdac559ce568df224ef0c" args="" -->
158
unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><b>analog_initd</b> = 0</td></tr>
159

    
160
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5eb605b54dd4e834570cb083c682ba96"></a><!-- doxytag: member="analog::adc_loop_status" ref="g5eb605b54dd4e834570cb083c682ba96" args="" -->
161
volatile int&nbsp;</td><td class="memItemRight" valign="bottom"><b>adc_loop_status</b> = ADC_LOOP_STOPPED</td></tr>
162

    
163
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9360e649368366927109c19be18790d7"></a><!-- doxytag: member="analog::adc_sig_stop_loop" ref="g9360e649368366927109c19be18790d7" args="" -->
164
volatile int&nbsp;</td><td class="memItemRight" valign="bottom"><b>adc_sig_stop_loop</b> = 0</td></tr>
165

    
166
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g98cf9bff870d66dc18240ab4aa9a4dd6"></a><!-- doxytag: member="analog::adc_current_port" ref="g98cf9bff870d66dc18240ab4aa9a4dd6" args="" -->
167
volatile int&nbsp;</td><td class="memItemRight" valign="bottom"><b>adc_current_port</b> = 0</td></tr>
168

    
169
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gda0bce94bf4448ab11f976bc3ec4fd10"></a><!-- doxytag: member="analog::an_val" ref="gda0bce94bf4448ab11f976bc3ec4fd10" args="[11]" -->
170
volatile <a class="el" href="structadc__t.html">adc_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>an_val</b> [11]</td></tr>
171

    
172
</table>
173
<hr><a name="_details"></a><h2>Detailed Description</h2>
174
Functions for manipulation the ADC on the dragonfly board. All definitions may be found in <a class="el" href="analog_8h.html" title="Contains functions and definitions for using the ADC.">analog.h</a>. <hr><h2>Function Documentation</h2>
175
<a class="anchor" name="g875bf8cb165a3a288eb1aa2ac06be4f3"></a><!-- doxytag: member="analog.c::analog10" ref="g875bf8cb165a3a288eb1aa2ac06be4f3" args="(int which)" -->
176
<div class="memitem">
177
<div class="memproto">
178
      <table class="memname">
179
        <tr>
180
          <td class="memname">unsigned int analog10           </td>
181
          <td>(</td>
182
          <td class="paramtype">int&nbsp;</td>
183
          <td class="paramname"> <em>which</em>          </td>
184
          <td>&nbsp;)&nbsp;</td>
185
          <td></td>
186
        </tr>
187
      </table>
188
</div>
189
<div class="memdoc">
190

    
191
<p>
192
Returns an 10-bit analog value from the look up table. Use this instead of analog_get10. 
193
<p>
194
Returns the 10-bit analog conversion of which from the lookup table. If the requested port is the BOM_PORT you will get an automatic 0 since the BOM_PORT is not read in the loop and not stored. If you need that port you should use the functions in <a class="el" href="bom_8c.html" title="Implementation for using the BOM.">bom.c</a>. There is an analog_get10 function which for instant lookups but should be avoided unless you know what you are doing.<p>
195
<dl compact><dt><b>Parameters:</b></dt><dd>
196
  <table border="0" cellspacing="2" cellpadding="0">
197
    <tr><td valign="top"></td><td valign="top"><em>which</em>&nbsp;</td><td>the port that you want to read</td></tr>
198
  </table>
199
</dl>
200
<dl compact><dt><b><a class="el" href="bug.html#_bug000003">Bug:</a></b></dt><dd>may cause a seg fault if which is a larger value than exists in an_val table. Not sure if we should fix this or not since it would add overhead.</dd></dl>
201
<dl class="return" compact><dt><b>Returns:</b></dt><dd>10-bit analog value for the which port requested</dd></dl>
202
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__analog.html#gf1211040ce2c54f12f98df7d47a4eb27" title="Returns an 8-bit analog value from the look up table. Use this instead of analog_get8...">analog8</a>, <a class="el" href="group__analog.html#g1593f0ee57fea252a5ef0146004d7fa9" title="Read an 8-bit number from an analog port. Loop must be stopped for this to work.">analog_get8</a>, <a class="el" href="group__analog.html#g97e97c6d960441518b2572c42c941719" title="Read a 10-bit number from an analog port. Loop must be stopped for this to work.">analog_get10</a> </dd></dl>
203

    
204
</div>
205
</div><p>
206
<a class="anchor" name="gf1211040ce2c54f12f98df7d47a4eb27"></a><!-- doxytag: member="analog.c::analog8" ref="gf1211040ce2c54f12f98df7d47a4eb27" args="(int which)" -->
207
<div class="memitem">
208
<div class="memproto">
209
      <table class="memname">
210
        <tr>
211
          <td class="memname">unsigned int analog8           </td>
212
          <td>(</td>
213
          <td class="paramtype">int&nbsp;</td>
214
          <td class="paramname"> <em>which</em>          </td>
215
          <td>&nbsp;)&nbsp;</td>
216
          <td></td>
217
        </tr>
218
      </table>
219
</div>
220
<div class="memdoc">
221

    
222
<p>
223
Returns an 8-bit analog value from the look up table. Use this instead of analog_get8. 
224
<p>
225
Returns the 8-bit analog conversion of which from the lookup table. If the requested port is the BOM_PORT you will get an automatic 0 since the BOM_PORT is not read in the loop and not stored. If you need that port you should use the functions in <a class="el" href="bom_8c.html" title="Implementation for using the BOM.">bom.c</a>. There is an analog_get8 function which for instant lookups but should be avoided unless you know what you're doing.<p>
226
<dl compact><dt><b>Parameters:</b></dt><dd>
227
  <table border="0" cellspacing="2" cellpadding="0">
228
    <tr><td valign="top"></td><td valign="top"><em>which</em>&nbsp;</td><td>the port that you want to read</td></tr>
229
  </table>
230
</dl>
231
<dl compact><dt><b><a class="el" href="bug.html#_bug000002">Bug:</a></b></dt><dd>may cause a seg fault if which is a larger value than exists in an_val table. Not sure if we should fix this or not since it would add overhead.</dd></dl>
232
<dl class="return" compact><dt><b>Returns:</b></dt><dd>8-bit analog value for the which port requested</dd></dl>
233
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__analog.html#g875bf8cb165a3a288eb1aa2ac06be4f3" title="Returns an 10-bit analog value from the look up table. Use this instead of analog_get10...">analog10</a>, <a class="el" href="group__analog.html#g1593f0ee57fea252a5ef0146004d7fa9" title="Read an 8-bit number from an analog port. Loop must be stopped for this to work.">analog_get8</a>, <a class="el" href="group__analog.html#g97e97c6d960441518b2572c42c941719" title="Read a 10-bit number from an analog port. Loop must be stopped for this to work.">analog_get10</a> </dd></dl>
234

    
235
</div>
236
</div><p>
237
<a class="anchor" name="g97e97c6d960441518b2572c42c941719"></a><!-- doxytag: member="analog.c::analog_get10" ref="g97e97c6d960441518b2572c42c941719" args="(int which)" -->
238
<div class="memitem">
239
<div class="memproto">
240
      <table class="memname">
241
        <tr>
242
          <td class="memname">unsigned int analog_get10           </td>
243
          <td>(</td>
244
          <td class="paramtype">int&nbsp;</td>
245
          <td class="paramname"> <em>which</em>          </td>
246
          <td>&nbsp;)&nbsp;</td>
247
          <td></td>
248
        </tr>
249
      </table>
250
</div>
251
<div class="memdoc">
252

    
253
<p>
254
Read a 10-bit number from an analog port. Loop must be stopped for this to work. 
255
<p>
256
Reads an 10-bit number from an analog port. analog_init must be called before using this function. The analog loop must also be stopped before using this function or you will mess up the lookup table. You must also reenabled the loop when you are done unless you are doing more instant reads. See analog_stop_loop and analog_start_loop for more information about the loop.<p>
257
<dl compact><dt><b>Parameters:</b></dt><dd>
258
  <table border="0" cellspacing="2" cellpadding="0">
259
    <tr><td valign="top"></td><td valign="top"><em>which</em>&nbsp;</td><td>the analog port to read from. Typically a constant, one of AN0 - AN7.</td></tr>
260
  </table>
261
</dl>
262
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the 10-bit number input to the specified port</dd></dl>
263
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__analog.html#gf998a4653bf62164fcc93b0f58796ab5" title="Initialize analog ports. Will start running a loop if start_conversion is ADC_START...">analog_init</a>, <a class="el" href="group__analog.html#g1593f0ee57fea252a5ef0146004d7fa9" title="Read an 8-bit number from an analog port. Loop must be stopped for this to work.">analog_get8</a>, <a class="el" href="group__analog.html#g875bf8cb165a3a288eb1aa2ac06be4f3" title="Returns an 10-bit analog value from the look up table. Use this instead of analog_get10...">analog10</a>, <a class="el" href="group__analog.html#g3bbeaef32b06f0c2ec5eee36e15f5514" title="Stops the analog loop. Doesn&#39;t do anything if the loop is already stopped.">analog_stop_loop</a>, <a class="el" href="group__analog.html#g866f1b9a4d513ed0dc5fa8527486d7f9" title="starts the analog loop. Doesn&#39;t do anything if the loop is already running.">analog_start_loop</a> </dd></dl>
264

    
265
</div>
266
</div><p>
267
<a class="anchor" name="g1593f0ee57fea252a5ef0146004d7fa9"></a><!-- doxytag: member="analog.c::analog_get8" ref="g1593f0ee57fea252a5ef0146004d7fa9" args="(int which)" -->
268
<div class="memitem">
269
<div class="memproto">
270
      <table class="memname">
271
        <tr>
272
          <td class="memname">unsigned int analog_get8           </td>
273
          <td>(</td>
274
          <td class="paramtype">int&nbsp;</td>
275
          <td class="paramname"> <em>which</em>          </td>
276
          <td>&nbsp;)&nbsp;</td>
277
          <td></td>
278
        </tr>
279
      </table>
280
</div>
281
<div class="memdoc">
282

    
283
<p>
284
Read an 8-bit number from an analog port. Loop must be stopped for this to work. 
285
<p>
286
Reads an 8-bit number from an analog port. analog_init must be called before using this function. The analog loop must also be stopped before using this function or you will mess up the lookup table. You must also reenabled the loop when you are done unless you are doing more instant reads. See analog_stop_loop and analog_start_loop for more information about the loop.<p>
287
<dl compact><dt><b>Parameters:</b></dt><dd>
288
  <table border="0" cellspacing="2" cellpadding="0">
289
    <tr><td valign="top"></td><td valign="top"><em>which</em>&nbsp;</td><td>the analog port to read from. One of the constants AN0 - AN7.</td></tr>
290
  </table>
291
</dl>
292
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the 8-bit input to the specified port</dd></dl>
293
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__analog.html#gf998a4653bf62164fcc93b0f58796ab5" title="Initialize analog ports. Will start running a loop if start_conversion is ADC_START...">analog_init</a>, <a class="el" href="group__analog.html#g97e97c6d960441518b2572c42c941719" title="Read a 10-bit number from an analog port. Loop must be stopped for this to work.">analog_get10</a>, <a class="el" href="group__analog.html#gf1211040ce2c54f12f98df7d47a4eb27" title="Returns an 8-bit analog value from the look up table. Use this instead of analog_get8...">analog8</a>, <a class="el" href="group__analog.html#g3bbeaef32b06f0c2ec5eee36e15f5514" title="Stops the analog loop. Doesn&#39;t do anything if the loop is already stopped.">analog_stop_loop</a>, <a class="el" href="group__analog.html#g866f1b9a4d513ed0dc5fa8527486d7f9" title="starts the analog loop. Doesn&#39;t do anything if the loop is already running.">analog_start_loop</a> </dd></dl>
294

    
295
</div>
296
</div><p>
297
<a class="anchor" name="gf998a4653bf62164fcc93b0f58796ab5"></a><!-- doxytag: member="analog.c::analog_init" ref="gf998a4653bf62164fcc93b0f58796ab5" args="(int start_conversion)" -->
298
<div class="memitem">
299
<div class="memproto">
300
      <table class="memname">
301
        <tr>
302
          <td class="memname">int analog_init           </td>
303
          <td>(</td>
304
          <td class="paramtype">int&nbsp;</td>
305
          <td class="paramname"> <em>start_conversion</em>          </td>
306
          <td>&nbsp;)&nbsp;</td>
307
          <td></td>
308
        </tr>
309
      </table>
310
</div>
311
<div class="memdoc">
312

    
313
<p>
314
Initialize analog ports. Will start running a loop if start_conversion is ADC_START. 
315
<p>
316
Initializes the ADC. Call analog_init before reading from the analog ports.<p>
317
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns 0 on success, nonzero on error</dd></dl>
318
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__analog.html#gf1211040ce2c54f12f98df7d47a4eb27" title="Returns an 8-bit analog value from the look up table. Use this instead of analog_get8...">analog8</a>, <a class="el" href="group__analog.html#g875bf8cb165a3a288eb1aa2ac06be4f3" title="Returns an 10-bit analog value from the look up table. Use this instead of analog_get10...">analog10</a>, <a class="el" href="group__analog.html#g1593f0ee57fea252a5ef0146004d7fa9" title="Read an 8-bit number from an analog port. Loop must be stopped for this to work.">analog_get8</a>, <a class="el" href="group__analog.html#g97e97c6d960441518b2572c42c941719" title="Read a 10-bit number from an analog port. Loop must be stopped for this to work.">analog_get10</a></dd></dl>
319
<dl compact><dt><b><a class="el" href="bug.html#_bug000001">Bug:</a></b></dt><dd>First conversion takes a performance penalty of 25 vs. 13 ADC clock cycles of successive conversions. Analog_init should run a dummy conversion to pre-empt this.</dd></dl>
320
For good 10-bit precision, ACD clock must be between 50kHz and 200kHz. Currently, ADC clock is fixed at 125kHz using 1/64prescalar. However, most code uses 8-bit precision which can work at ADC clock speeds higher than 200kHz. Experimental tests needed to determine highest clock speed for accurate 8-bit ADC. 
321
</div>
322
</div><p>
323
<a class="anchor" name="gb58a2677b8c151ca00bf9529b7d4bb81"></a><!-- doxytag: member="analog.c::analog_loop_status" ref="gb58a2677b8c151ca00bf9529b7d4bb81" args="(void)" -->
324
<div class="memitem">
325
<div class="memproto">
326
      <table class="memname">
327
        <tr>
328
          <td class="memname">int analog_loop_status           </td>
329
          <td>(</td>
330
          <td class="paramtype">void&nbsp;</td>
331
          <td class="paramname">          </td>
332
          <td>&nbsp;)&nbsp;</td>
333
          <td></td>
334
        </tr>
335
      </table>
336
</div>
337
<div class="memdoc">
338

    
339
<p>
340
Returns the status of the analog loop. 
341
<p>
342
Returns the status of loop. 0 for stopped. 1 for running. 2 for paused.<p>
343
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__analog.html#g866f1b9a4d513ed0dc5fa8527486d7f9" title="starts the analog loop. Doesn&#39;t do anything if the loop is already running.">analog_start_loop</a>, <a class="el" href="group__analog.html#g3bbeaef32b06f0c2ec5eee36e15f5514" title="Stops the analog loop. Doesn&#39;t do anything if the loop is already stopped.">analog_stop_loop</a> </dd></dl>
344

    
345
</div>
346
</div><p>
347
<a class="anchor" name="g866f1b9a4d513ed0dc5fa8527486d7f9"></a><!-- doxytag: member="analog.c::analog_start_loop" ref="g866f1b9a4d513ed0dc5fa8527486d7f9" args="(void)" -->
348
<div class="memitem">
349
<div class="memproto">
350
      <table class="memname">
351
        <tr>
352
          <td class="memname">int analog_start_loop           </td>
353
          <td>(</td>
354
          <td class="paramtype">void&nbsp;</td>
355
          <td class="paramname">          </td>
356
          <td>&nbsp;)&nbsp;</td>
357
          <td></td>
358
        </tr>
359
      </table>
360
</div>
361
<div class="memdoc">
362

    
363
<p>
364
starts the analog loop. Doesn't do anything if the loop is already running. 
365
<p>
366
Starts the analog update loop. Will continue to run until analog_stop_loop is called.<p>
367
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns 0 on success, nonzero on error</dd></dl>
368
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__analog.html#g3bbeaef32b06f0c2ec5eee36e15f5514" title="Stops the analog loop. Doesn&#39;t do anything if the loop is already stopped.">analog_stop_loop</a>, <a class="el" href="group__analog.html#gb58a2677b8c151ca00bf9529b7d4bb81" title="Returns the status of the analog loop.">analog_loop_status</a> </dd></dl>
369

    
370
</div>
371
</div><p>
372
<a class="anchor" name="g3bbeaef32b06f0c2ec5eee36e15f5514"></a><!-- doxytag: member="analog.c::analog_stop_loop" ref="g3bbeaef32b06f0c2ec5eee36e15f5514" args="(void)" -->
373
<div class="memitem">
374
<div class="memproto">
375
      <table class="memname">
376
        <tr>
377
          <td class="memname">int analog_stop_loop           </td>
378
          <td>(</td>
379
          <td class="paramname">          </td>
380
          <td>&nbsp;)&nbsp;</td>
381
          <td></td>
382
        </tr>
383
      </table>
384
</div>
385
<div class="memdoc">
386

    
387
<p>
388
Stops the analog loop. Doesn't do anything if the loop is already stopped. 
389
<p>
390
Stops the analog update loop. If there is a current read, it will finish up and be stored before the loop is interrupted. No further updates will be made until the loop is started again.<p>
391
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns 0 on success, nonzero on error</dd></dl>
392
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__analog.html#g866f1b9a4d513ed0dc5fa8527486d7f9" title="starts the analog loop. Doesn&#39;t do anything if the loop is already running.">analog_start_loop</a>, <a class="el" href="group__analog.html#gb58a2677b8c151ca00bf9529b7d4bb81" title="Returns the status of the analog loop.">analog_loop_status</a> </dd></dl>
393

    
394
</div>
395
</div><p>
396
<a class="anchor" name="gbc63da8e5431c1d15bc9a61749628f35"></a><!-- doxytag: member="analog.c::set_adc_mux" ref="gbc63da8e5431c1d15bc9a61749628f35" args="(int which)" -->
397
<div class="memitem">
398
<div class="memproto">
399
      <table class="memname">
400
        <tr>
401
          <td class="memname">void set_adc_mux           </td>
402
          <td>(</td>
403
          <td class="paramtype">int&nbsp;</td>
404
          <td class="paramname"> <em>which</em>          </td>
405
          <td>&nbsp;)&nbsp;</td>
406
          <td></td>
407
        </tr>
408
      </table>
409
</div>
410
<div class="memdoc">
411

    
412
<p>
413
Sets the value of the external analog mux. Values are read on AN7 physical port. (AN8 - AN15 are "virtual" ports).<p>
414
<dl compact><dt><b>Parameters:</b></dt><dd>
415
  <table border="0" cellspacing="2" cellpadding="0">
416
    <tr><td valign="top"></td><td valign="top"><em>which</em>&nbsp;</td><td>which analog mux port (0-7) which corresponds to AN8-AN15.</td></tr>
417
  </table>
418
</dl>
419
<dl compact><dt><b><a class="el" href="bug.html#_bug000004">Bug:</a></b></dt><dd>FIX THIS IN THE NEXT BOARD REVISION: ADDR2 ADDR1 ADDR0 G2.G4.G3 set mux to port 0-7 via vinary selection math would be much cleaner if it was G4.G3.G2</dd></dl>
420
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__analog.html#gf998a4653bf62164fcc93b0f58796ab5" title="Initialize analog ports. Will start running a loop if start_conversion is ADC_START...">analog_init</a> </dd></dl>
421

    
422
</div>
423
</div><p>
424
<a class="anchor" name="g973e63eb508819a37efe3231b6a39550"></a><!-- doxytag: member="analog.c::wheel" ref="g973e63eb508819a37efe3231b6a39550" args="(void)" -->
425
<div class="memitem">
426
<div class="memproto">
427
      <table class="memname">
428
        <tr>
429
          <td class="memname">int wheel           </td>
430
          <td>(</td>
431
          <td class="paramtype">void&nbsp;</td>
432
          <td class="paramname">          </td>
433
          <td>&nbsp;)&nbsp;</td>
434
          <td></td>
435
        </tr>
436
      </table>
437
</div>
438
<div class="memdoc">
439

    
440
<p>
441
Read the position of the wheel. 
442
<p>
443
Returns the current position of the wheel, as an integer in the range 0 - 255. analog_init must be called before using this function.<p>
444
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the orientation of the wheel, as an integer in the range 0 - 255.</dd></dl>
445
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__analog.html#gf998a4653bf62164fcc93b0f58796ab5" title="Initialize analog ports. Will start running a loop if start_conversion is ADC_START...">analog_init</a> </dd></dl>
446

    
447
</div>
448
</div><p>
449
</div>
450
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Nov 20 21:51:59 2009 for Colony by&nbsp;
451
<a href="http://www.doxygen.org/index.html">
452
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
453
</body>
454
</html>