gnuk/ChibiOS_2.0.6/docs/html/group___a_d_c.html

492 lines
36 KiB
HTML
Raw Normal View History

2010-08-10 03:11:02 +00:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>ChibiOS/RT: ADC Driver</title>
<link href="custom.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<table style="text-align: center; width: 100%;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="width: 80px;"><img alt="ChibiOS/RT Logo" src="logo_small.png"></td>
<td><big><big>ChibiOS/RT</big></big><br><br>Architecture - Reference Manual - Guides</td>
<td style="width: 80px;"></td>
</tr>
</tbody>
</table>
<hr size="1">
2010-11-22 05:53:37 +00:00
<!-- Generated by Doxygen 1.7.1 -->
2010-08-10 03:11:02 +00:00
<div class="navigation" id="top">
<div class="tabs">
2010-11-22 05:53:37 +00:00
<ul class="tablist">
2010-08-10 03:11:02 +00:00
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
2010-11-22 05:53:37 +00:00
<div class="header">
<div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
2010-08-10 03:11:02 +00:00
<h1>ADC Driver<br/>
<small>
[<a class="el" href="group___i_o.html">HAL</a>]</small>
2010-11-22 05:53:37 +00:00
</h1> </div>
</div>
<div class="contents">
2010-08-10 03:11:02 +00:00
<p>Generic ADC Driver.
<a href="#_details">More...</a></p>
<p><div class="dynheader">
Collaboration diagram for ADC Driver:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<center><table><tr><td><img src="group___a_d_c.png" border="0" alt="" usemap="#group______a__d__c"/>
<map name="group______a__d__c" id="group______a__d__c">
<area shape="rect" id="node1" href="group___i_o.html" title="Hardware Abstraction Layer." alt="" coords="5,5,48,32"/> <area shape="rect" id="node3" href="group___a_d_c___l_l_d.html" title="ADC Driver low level driver template." alt="" coords="221,5,352,32"/> </map>
</td></tr></table></center>
2010-08-10 03:11:02 +00:00
</div>
</p>
<hr/><a name="_details"></a><h2>Description</h2>
<p>Generic ADC Driver. </p>
<p>This module implements a generic ADC driver. The driver implements a state machine internally: </p>
<div align="center">
<img src="inline_dotgraph_16.dot.png" alt="inline_dotgraph_16.dot" border="0" usemap="#inline_dotgraph_16.dot.map">
<map name="inline_dotgraph_16.dot.map" id="inline_dotgraph_16.dot.map"></map>
</div>
<p>The driver supports a continuous conversion mode with circular buffer, callback functions allow to process the converted data in real time. Please refer to the documentation of the function <code><a class="el" href="group___a_d_c.html#gadb9905e3fcd0f053ca1e07e9686bf641" title="Starts an ADC conversion.">adcStartConversion()</a></code>. </p>
2010-11-22 05:53:37 +00:00
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="groups"></a>
Modules</h2></td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c___l_l_d.html">ADC Low Level Driver</a></td></tr>
<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p><a class="el" href="group___a_d_c.html">ADC Driver</a> low level driver template. </p>
<br/></td></tr>
</p>
2010-11-22 05:53:37 +00:00
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#ga4cc65f146a01d46dccf54d6f67a1ce30">adcstate_t</a> { <br/>
&nbsp;&nbsp;<a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30a2593f544e0e7d2bde3737b36188db7ca">ADC_UNINIT</a> = 0,
<a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30a3ce5b3b06ffd24b358cf65efdee69f30">ADC_STOP</a> = 1,
<a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30a7f2a1a2c5aece4f36847bf5cea31cd14">ADC_READY</a> = 2,
<a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30ac7e9b56ff40aed13ba7bf7ee6ed6fc20">ADC_RUNNING</a> = 3,
<br/>
&nbsp;&nbsp;<a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30a90848166c82f38aa379ec0f89ca29ac8">ADC_COMPLETE</a> = 4
<br/>
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Driver state machine possible states. </p>
<a href="group___a_d_c.html#ga4cc65f146a01d46dccf54d6f67a1ce30">More...</a><br/></td></tr>
2010-11-22 05:53:37 +00:00
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#gafd645b17cf0581bcaa22c56011c775e4">adcInit</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ADC Driver initialization. <a href="#gafd645b17cf0581bcaa22c56011c775e4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#gac7f619e304c79c17f19221d05138d405">adcObjectInit</a> (<a class="el" href="struct_a_d_c_driver.html">ADCDriver</a> *adcp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes the standard part of a <code><a class="el" href="struct_a_d_c_driver.html" title="Structure representing an ADC driver.">ADCDriver</a></code> structure. <a href="#gac7f619e304c79c17f19221d05138d405"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#ga92f8b4434b8199323b1469e0479de7f8">adcStart</a> (<a class="el" href="struct_a_d_c_driver.html">ADCDriver</a> *adcp, const <a class="el" href="struct_a_d_c_config.html">ADCConfig</a> *config)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Configures and activates the ADC peripheral. <a href="#ga92f8b4434b8199323b1469e0479de7f8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#ga3caf934a28b65e6a5eda3e882ca06845">adcStop</a> (<a class="el" href="struct_a_d_c_driver.html">ADCDriver</a> *adcp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deactivates the ADC peripheral. <a href="#ga3caf934a28b65e6a5eda3e882ca06845"></a><br/></td></tr>
2010-11-22 05:53:37 +00:00
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__types.html#ga7556af1cb61728b53228fa3af1c851de">bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#gadb9905e3fcd0f053ca1e07e9686bf641">adcStartConversion</a> (<a class="el" href="struct_a_d_c_driver.html">ADCDriver</a> *adcp, const <a class="el" href="struct_a_d_c_conversion_group.html">ADCConversionGroup</a> *grpp, <a class="el" href="group___a_d_c___l_l_d.html#gac232ced5da9f2b4f5d5adf499c7cb745">adcsample_t</a> *samples, size_t depth, <a class="el" href="group___s_t_m32___a_d_c.html#ga8e0e1e6b7c43117b6bd065dab8069ce0">adccallback_t</a> callback)</td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Starts an ADC conversion. <a href="#gadb9905e3fcd0f053ca1e07e9686bf641"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#gabce14d8f240e85715cded02c85b6585a">adcStopConversion</a> (<a class="el" href="struct_a_d_c_driver.html">ADCDriver</a> *adcp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stops an ongoing conversion. <a href="#gabce14d8f240e85715cded02c85b6585a"></a><br/></td></tr>
2010-11-22 05:53:37 +00:00
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__types.html#ga35bcb0c321cd7bc45bf1a11fa17ebdd3">msg_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#ga026ac46dfe36031ab177e35f3aff5b09">adcWaitConversion</a> (<a class="el" href="struct_a_d_c_driver.html">ADCDriver</a> *adcp, <a class="el" href="group__types.html#gae3e32a98d431a02106616da3071832dd">systime_t</a> timeout)</td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Waits for completion. <a href="#ga026ac46dfe36031ab177e35f3aff5b09"></a><br/></td></tr>
</table>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ga4cc65f146a01d46dccf54d6f67a1ce30"></a><!-- doxytag: member="adc.h::adcstate_t" ref="ga4cc65f146a01d46dccf54d6f67a1ce30" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group___a_d_c.html#ga4cc65f146a01d46dccf54d6f67a1ce30">adcstate_t</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Driver state machine possible states. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga4cc65f146a01d46dccf54d6f67a1ce30a2593f544e0e7d2bde3737b36188db7ca"></a><!-- doxytag: member="ADC_UNINIT" ref="gga4cc65f146a01d46dccf54d6f67a1ce30a2593f544e0e7d2bde3737b36188db7ca" args="" -->ADC_UNINIT</em>&nbsp;</td><td>
<p>Not initialized. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga4cc65f146a01d46dccf54d6f67a1ce30a3ce5b3b06ffd24b358cf65efdee69f30"></a><!-- doxytag: member="ADC_STOP" ref="gga4cc65f146a01d46dccf54d6f67a1ce30a3ce5b3b06ffd24b358cf65efdee69f30" args="" -->ADC_STOP</em>&nbsp;</td><td>
<p>Stopped. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga4cc65f146a01d46dccf54d6f67a1ce30a7f2a1a2c5aece4f36847bf5cea31cd14"></a><!-- doxytag: member="ADC_READY" ref="gga4cc65f146a01d46dccf54d6f67a1ce30a7f2a1a2c5aece4f36847bf5cea31cd14" args="" -->ADC_READY</em>&nbsp;</td><td>
<p>Ready. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga4cc65f146a01d46dccf54d6f67a1ce30ac7e9b56ff40aed13ba7bf7ee6ed6fc20"></a><!-- doxytag: member="ADC_RUNNING" ref="gga4cc65f146a01d46dccf54d6f67a1ce30ac7e9b56ff40aed13ba7bf7ee6ed6fc20" args="" -->ADC_RUNNING</em>&nbsp;</td><td>
<p>Conversion running. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga4cc65f146a01d46dccf54d6f67a1ce30a90848166c82f38aa379ec0f89ca29ac8"></a><!-- doxytag: member="ADC_COMPLETE" ref="gga4cc65f146a01d46dccf54d6f67a1ce30a90848166c82f38aa379ec0f89ca29ac8" args="" -->ADC_COMPLETE</em>&nbsp;</td><td>
<p>Conversion complete. </p>
</td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="adc_8h_source.html#l00063">63</a> of file <a class="el" href="adc_8h_source.html">adc.h</a>.</p>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gafd645b17cf0581bcaa22c56011c775e4"></a><!-- doxytag: member="adc.h::adcInit" ref="gafd645b17cf0581bcaa22c56011c775e4" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void adcInit </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>ADC Driver initialization. </p>
<p>Definition at line <a class="el" href="adc_8c_source.html#l00059">59</a> of file <a class="el" href="adc_8c_source.html">adc.c</a>.</p>
<p>References <a class="el" href="group___a_d_c___l_l_d.html#ga2bfcc655059180451273682ca7e0068c">adc_lld_init()</a>.</p>
<p>Referenced by <a class="el" href="group___h_a_l.html#gafd89c1650df524d95aef39b8bc38170d">halInit()</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<div class="center"><img src="group___a_d_c_gafd645b17cf0581bcaa22c56011c775e4_cgraph.png" border="0" usemap="#group___a_d_c_gafd645b17cf0581bcaa22c56011c775e4_cgraph" alt=""/></div>
<map name="group___a_d_c_gafd645b17cf0581bcaa22c56011c775e4_cgraph" id="group___a_d_c_gafd645b17cf0581bcaa22c56011c775e4_cgraph">
<area shape="rect" id="node3" href="group___a_d_c___l_l_d.html#ga2bfcc655059180451273682ca7e0068c" title="Low level ADC driver initialization." alt="" coords="107,5,181,32"/> </map>
2010-08-10 03:11:02 +00:00
</div>
</p>
</div>
</div>
<a class="anchor" id="gac7f619e304c79c17f19221d05138d405"></a><!-- doxytag: member="adc.h::adcObjectInit" ref="gac7f619e304c79c17f19221d05138d405" args="(ADCDriver *adcp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void adcObjectInit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_a_d_c_driver.html">ADCDriver</a> *&nbsp;</td>
<td class="paramname"> <em>adcp</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initializes the standard part of a <code><a class="el" href="struct_a_d_c_driver.html" title="Structure representing an ADC driver.">ADCDriver</a></code> structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>adcp</em>&nbsp;</td><td>pointer to the <code><a class="el" href="struct_a_d_c_driver.html" title="Structure representing an ADC driver.">ADCDriver</a></code> object </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="adc_8c_source.html#l00069">69</a> of file <a class="el" href="adc_8c_source.html">adc.c</a>.</p>
2010-11-22 05:53:37 +00:00
<p>References <a class="el" href="struct_a_d_c_driver.html#acfc6a74945032cf8614158ca5547971a">ADCDriver::ad_callback</a>, <a class="el" href="struct_a_d_c_driver.html#aa6f1250f7d6a398f200564527a08e1b3">ADCDriver::ad_config</a>, <a class="el" href="struct_a_d_c_driver.html#aa0af6e2decf71a731b790c4d4a4b1a81">ADCDriver::ad_depth</a>, <a class="el" href="struct_a_d_c_driver.html#a19eb4830ebe2f504ee1e0ba8feb17868">ADCDriver::ad_grpp</a>, <a class="el" href="struct_a_d_c_driver.html#abc52bc89d22673ed671e6ce50675acd2">ADCDriver::ad_samples</a>, <a class="el" href="struct_a_d_c_driver.html#ad27fb341e1688e910dde532009651f9c">ADCDriver::ad_sem</a>, <a class="el" href="struct_a_d_c_driver.html#aad88dcc5b92e368e1ec5b095df1a9f28">ADCDriver::ad_state</a>, and <a class="el" href="group__semaphores.html#gafe8fc6155a871074e8017efd908b2c58">chSemInit()</a>.</p>
2010-08-10 03:11:02 +00:00
<p><div class="dynheader">
Here is the call graph for this function:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<div class="center"><img src="group___a_d_c_gac7f619e304c79c17f19221d05138d405_cgraph.png" border="0" usemap="#group___a_d_c_gac7f619e304c79c17f19221d05138d405_cgraph" alt=""/></div>
<map name="group___a_d_c_gac7f619e304c79c17f19221d05138d405_cgraph" id="group___a_d_c_gac7f619e304c79c17f19221d05138d405_cgraph">
<area shape="rect" id="node3" href="group__semaphores.html#gafe8fc6155a871074e8017efd908b2c58" title="Initializes a semaphore with the specified counter value." alt="" coords="140,5,207,32"/> </map>
2010-08-10 03:11:02 +00:00
</div>
</p>
</div>
</div>
<a class="anchor" id="ga92f8b4434b8199323b1469e0479de7f8"></a><!-- doxytag: member="adc.h::adcStart" ref="ga92f8b4434b8199323b1469e0479de7f8" args="(ADCDriver *adcp, const ADCConfig *config)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void adcStart </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_a_d_c_driver.html">ADCDriver</a> *&nbsp;</td>
<td class="paramname"> <em>adcp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="struct_a_d_c_config.html">ADCConfig</a> *&nbsp;</td>
<td class="paramname"> <em>config</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Configures and activates the ADC peripheral. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>adcp</em>&nbsp;</td><td>pointer to the <code><a class="el" href="struct_a_d_c_driver.html" title="Structure representing an ADC driver.">ADCDriver</a></code> object </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>config</em>&nbsp;</td><td>pointer to the <code><a class="el" href="struct_a_d_c_config.html" title="Driver configuration structure.">ADCConfig</a></code> object </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="adc_8c_source.html#l00086">86</a> of file <a class="el" href="adc_8c_source.html">adc.c</a>.</p>
<p>References <a class="el" href="struct_a_d_c_driver.html#aa6f1250f7d6a398f200564527a08e1b3">ADCDriver::ad_config</a>, <a class="el" href="struct_a_d_c_driver.html#aad88dcc5b92e368e1ec5b095df1a9f28">ADCDriver::ad_state</a>, <a class="el" href="group___a_d_c___l_l_d.html#ga9114c26236516afddb6add35ee3251f3">adc_lld_start()</a>, <a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30a7f2a1a2c5aece4f36847bf5cea31cd14">ADC_READY</a>, <a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30a3ce5b3b06ffd24b358cf65efdee69f30">ADC_STOP</a>, <a class="el" href="group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9">chDbgAssert</a>, <a class="el" href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, <a class="el" href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, and <a class="el" href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<div class="center"><img src="group___a_d_c_ga92f8b4434b8199323b1469e0479de7f8_cgraph.png" border="0" usemap="#group___a_d_c_ga92f8b4434b8199323b1469e0479de7f8_cgraph" alt=""/></div>
<map name="group___a_d_c_ga92f8b4434b8199323b1469e0479de7f8_cgraph" id="group___a_d_c_ga92f8b4434b8199323b1469e0479de7f8_cgraph">
<area shape="rect" id="node3" href="group___a_d_c___l_l_d.html#ga9114c26236516afddb6add35ee3251f3" title="Configures and activates the ADC peripheral." alt="" coords="119,5,201,32"/> </map>
2010-08-10 03:11:02 +00:00
</div>
</p>
</div>
</div>
<a class="anchor" id="ga3caf934a28b65e6a5eda3e882ca06845"></a><!-- doxytag: member="adc.h::adcStop" ref="ga3caf934a28b65e6a5eda3e882ca06845" args="(ADCDriver *adcp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void adcStop </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_a_d_c_driver.html">ADCDriver</a> *&nbsp;</td>
<td class="paramname"> <em>adcp</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Deactivates the ADC peripheral. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>adcp</em>&nbsp;</td><td>pointer to the <code><a class="el" href="struct_a_d_c_driver.html" title="Structure representing an ADC driver.">ADCDriver</a></code> object </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="adc_8c_source.html#l00105">105</a> of file <a class="el" href="adc_8c_source.html">adc.c</a>.</p>
<p>References <a class="el" href="struct_a_d_c_driver.html#aad88dcc5b92e368e1ec5b095df1a9f28">ADCDriver::ad_state</a>, <a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30a90848166c82f38aa379ec0f89ca29ac8">ADC_COMPLETE</a>, <a class="el" href="group___a_d_c___l_l_d.html#ga5f4152006602b187c745bb32f915d679">adc_lld_stop()</a>, <a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30a7f2a1a2c5aece4f36847bf5cea31cd14">ADC_READY</a>, <a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30a3ce5b3b06ffd24b358cf65efdee69f30">ADC_STOP</a>, <a class="el" href="group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9">chDbgAssert</a>, <a class="el" href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, <a class="el" href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, and <a class="el" href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<div class="center"><img src="group___a_d_c_ga3caf934a28b65e6a5eda3e882ca06845_cgraph.png" border="0" usemap="#group___a_d_c_ga3caf934a28b65e6a5eda3e882ca06845_cgraph" alt=""/></div>
<map name="group___a_d_c_ga3caf934a28b65e6a5eda3e882ca06845_cgraph" id="group___a_d_c_ga3caf934a28b65e6a5eda3e882ca06845_cgraph">
<area shape="rect" id="node3" href="group___a_d_c___l_l_d.html#ga5f4152006602b187c745bb32f915d679" title="Deactivates the ADC peripheral." alt="" coords="117,5,200,32"/> </map>
2010-08-10 03:11:02 +00:00
</div>
</p>
</div>
</div>
<a class="anchor" id="gadb9905e3fcd0f053ca1e07e9686bf641"></a><!-- doxytag: member="adc.h::adcStartConversion" ref="gadb9905e3fcd0f053ca1e07e9686bf641" args="(ADCDriver *adcp, const ADCConversionGroup *grpp, adcsample_t *samples, size_t depth, adccallback_t callback)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
2010-11-22 05:53:37 +00:00
<td class="memname"><a class="el" href="group__types.html#ga7556af1cb61728b53228fa3af1c851de">bool_t</a> adcStartConversion </td>
2010-08-10 03:11:02 +00:00
<td>(</td>
<td class="paramtype"><a class="el" href="struct_a_d_c_driver.html">ADCDriver</a> *&nbsp;</td>
<td class="paramname"> <em>adcp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="struct_a_d_c_conversion_group.html">ADCConversionGroup</a> *&nbsp;</td>
<td class="paramname"> <em>grpp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
2010-11-22 05:53:37 +00:00
<td class="paramtype"><a class="el" href="group___a_d_c___l_l_d.html#gac232ced5da9f2b4f5d5adf499c7cb745">adcsample_t</a> *&nbsp;</td>
2010-08-10 03:11:02 +00:00
<td class="paramname"> <em>samples</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>depth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___s_t_m32___a_d_c.html#ga8e0e1e6b7c43117b6bd065dab8069ce0">adccallback_t</a>&nbsp;</td>
<td class="paramname"> <em>callback</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Starts an ADC conversion. </p>
<p>Starts a conversion operation, there are two kind of conversion modes:</p>
<ul>
2010-11-22 05:53:37 +00:00
<li><b>LINEAR</b>, in this mode the buffer is filled once and then the conversion stops automatically.</li>
<li><b>CIRCULAR</b>, in this mode the conversion never stops and the buffer is filled circularly.<br/>
During the conversion the callback function is invoked when the buffer is 50% filled and when the buffer is 100% filled, this way is possible to process the conversion stream in real time. This kind of conversion can only be stopped by explicitly invoking <code><a class="el" href="group___a_d_c.html#gabce14d8f240e85715cded02c85b6585a" title="Stops an ongoing conversion.">adcStopConversion()</a></code>.</li>
2010-08-10 03:11:02 +00:00
</ul>
<dl class="note"><dt><b>Note:</b></dt><dd>The buffer is organized as a matrix of M*N elements where M is the channels number configured into the conversion group and N is the buffer depth. The samples are sequentially written into the buffer with no gaps.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>adcp</em>&nbsp;</td><td>pointer to the <code><a class="el" href="struct_a_d_c_driver.html" title="Structure representing an ADC driver.">ADCDriver</a></code> object </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>grpp</em>&nbsp;</td><td>pointer to a <code><a class="el" href="struct_a_d_c_conversion_group.html" title="Conversion group configuration structure.">ADCConversionGroup</a></code> object </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>samples</em>&nbsp;</td><td>pointer to the samples buffer </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>depth</em>&nbsp;</td><td>buffer depth (matrix rows number). The buffer depth must be one or an even number. </td></tr>
2010-11-22 05:53:37 +00:00
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>callback</em>&nbsp;</td><td>pointer to the conversion callback function, this parameter can be <code>NULL</code> if a callback is not required </td></tr>
2010-08-10 03:11:02 +00:00
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The operation status. </dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>FALSE</em>&nbsp;</td><td>the conversion has been started. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>TRUE</em>&nbsp;</td><td>the driver is busy, conversion not started. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="adc_8c_source.html#l00150">150</a> of file <a class="el" href="adc_8c_source.html">adc.c</a>.</p>
<p>References <a class="el" href="struct_a_d_c_driver.html#acfc6a74945032cf8614158ca5547971a">ADCDriver::ad_callback</a>, <a class="el" href="struct_a_d_c_driver.html#aa0af6e2decf71a731b790c4d4a4b1a81">ADCDriver::ad_depth</a>, <a class="el" href="struct_a_d_c_driver.html#a19eb4830ebe2f504ee1e0ba8feb17868">ADCDriver::ad_grpp</a>, <a class="el" href="struct_a_d_c_driver.html#abc52bc89d22673ed671e6ce50675acd2">ADCDriver::ad_samples</a>, <a class="el" href="struct_a_d_c_driver.html#aad88dcc5b92e368e1ec5b095df1a9f28">ADCDriver::ad_state</a>, <a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30a90848166c82f38aa379ec0f89ca29ac8">ADC_COMPLETE</a>, <a class="el" href="group___a_d_c___l_l_d.html#ga5a23ece28ce81cc00e2ddb614d656339">adc_lld_start_conversion()</a>, <a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30a7f2a1a2c5aece4f36847bf5cea31cd14">ADC_READY</a>, <a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30ac7e9b56ff40aed13ba7bf7ee6ed6fc20">ADC_RUNNING</a>, <a class="el" href="group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9">chDbgAssert</a>, <a class="el" href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, <a class="el" href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, and <a class="el" href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<div class="center"><img src="group___a_d_c_gadb9905e3fcd0f053ca1e07e9686bf641_cgraph.png" border="0" usemap="#group___a_d_c_gadb9905e3fcd0f053ca1e07e9686bf641_cgraph" alt=""/></div>
<map name="group___a_d_c_gadb9905e3fcd0f053ca1e07e9686bf641_cgraph" id="group___a_d_c_gadb9905e3fcd0f053ca1e07e9686bf641_cgraph">
<area shape="rect" id="node3" href="group___a_d_c___l_l_d.html#ga5a23ece28ce81cc00e2ddb614d656339" title="Starts an ADC conversion." alt="" coords="173,5,317,32"/> </map>
2010-08-10 03:11:02 +00:00
</div>
</p>
</div>
</div>
<a class="anchor" id="gabce14d8f240e85715cded02c85b6585a"></a><!-- doxytag: member="adc.h::adcStopConversion" ref="gabce14d8f240e85715cded02c85b6585a" args="(ADCDriver *adcp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void adcStopConversion </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_a_d_c_driver.html">ADCDriver</a> *&nbsp;</td>
<td class="paramname"> <em>adcp</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Stops an ongoing conversion. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>adcp</em>&nbsp;</td><td>pointer to the <code><a class="el" href="struct_a_d_c_driver.html" title="Structure representing an ADC driver.">ADCDriver</a></code> object </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="adc_8c_source.html#l00185">185</a> of file <a class="el" href="adc_8c_source.html">adc.c</a>.</p>
<p>References <a class="el" href="struct_a_d_c_driver.html#a19eb4830ebe2f504ee1e0ba8feb17868">ADCDriver::ad_grpp</a>, <a class="el" href="struct_a_d_c_driver.html#ad27fb341e1688e910dde532009651f9c">ADCDriver::ad_sem</a>, <a class="el" href="struct_a_d_c_driver.html#aad88dcc5b92e368e1ec5b095df1a9f28">ADCDriver::ad_state</a>, <a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30a90848166c82f38aa379ec0f89ca29ac8">ADC_COMPLETE</a>, <a class="el" href="group___a_d_c___l_l_d.html#ga16ce41e3fdca5b04f046f1e9099f3e92">adc_lld_stop_conversion()</a>, <a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30a7f2a1a2c5aece4f36847bf5cea31cd14">ADC_READY</a>, <a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30ac7e9b56ff40aed13ba7bf7ee6ed6fc20">ADC_RUNNING</a>, <a class="el" href="group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9">chDbgAssert</a>, <a class="el" href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, <a class="el" href="group__scheduler.html#ga4e38b4bee3d2330f6a0f1cdb7660af20">chSchRescheduleS()</a>, <a class="el" href="group__semaphores.html#gae7972b6b22b80ac09bac5a186277ab81">chSemResetI()</a>, <a class="el" href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, and <a class="el" href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<div class="center"><img src="group___a_d_c_gabce14d8f240e85715cded02c85b6585a_cgraph.png" border="0" usemap="#group___a_d_c_gabce14d8f240e85715cded02c85b6585a_cgraph" alt=""/></div>
<map name="group___a_d_c_gabce14d8f240e85715cded02c85b6585a_cgraph" id="group___a_d_c_gabce14d8f240e85715cded02c85b6585a_cgraph">
<area shape="rect" id="node3" href="group___a_d_c___l_l_d.html#ga16ce41e3fdca5b04f046f1e9099f3e92" title="Stops an ongoing conversion." alt="" coords="172,5,313,32"/> <area shape="rect" id="node5" href="group__scheduler.html#ga4e38b4bee3d2330f6a0f1cdb7660af20" title="Performs a reschedule if a higher priority thread is runnable." alt="" coords="184,56,301,83"/> <area shape="rect" id="node11" href="group__semaphores.html#gae7972b6b22b80ac09bac5a186277ab81" title="Performs a reset operation on the semaphore." alt="" coords="200,107,285,133"/> <area shape="rect" id="node7" href="group__scheduler.html#ga0257cf203e72a766a52059750cb97e6e" title="Switches to the first thread on the runnable queue." alt="" coords="363,56,488,83"/> <area shape="rect" id="node9" href="group__scheduler.html#ga535d58cfb3436c8d4e4586c31c062298" title="Inserts a thread in the Ready List." alt="" coords="537,81,623,108"/> <area shape="rect" id="node14" href="group__internals.html#gacacfe77140cab62948e63d898bf4dfba" title="Removes the last&#45;out Thread from a queue and returns it." alt="" coords="387,157,464,184"/> </map>
2010-08-10 03:11:02 +00:00
</div>
</p>
</div>
</div>
<a class="anchor" id="ga026ac46dfe36031ab177e35f3aff5b09"></a><!-- doxytag: member="adc.h::adcWaitConversion" ref="ga026ac46dfe36031ab177e35f3aff5b09" args="(ADCDriver *adcp, systime_t timeout)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
2010-11-22 05:53:37 +00:00
<td class="memname"><a class="el" href="group__types.html#ga35bcb0c321cd7bc45bf1a11fa17ebdd3">msg_t</a> adcWaitConversion </td>
2010-08-10 03:11:02 +00:00
<td>(</td>
<td class="paramtype"><a class="el" href="struct_a_d_c_driver.html">ADCDriver</a> *&nbsp;</td>
<td class="paramname"> <em>adcp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
2010-11-22 05:53:37 +00:00
<td class="paramtype"><a class="el" href="group__types.html#gae3e32a98d431a02106616da3071832dd">systime_t</a>&nbsp;</td>
2010-08-10 03:11:02 +00:00
<td class="paramname"> <em>timeout</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Waits for completion. </p>
<p>If the conversion is not completed or not yet started then the invoking thread waits for a conversion completion event.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>adcp</em>&nbsp;</td><td>pointer to the <code><a class="el" href="struct_a_d_c_driver.html" title="Structure representing an ADC driver.">ADCDriver</a></code> object </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>timeout</em>&nbsp;</td><td>the number of ticks before the operation timeouts, the following special values are allowed:</p>
<ul>
<li><em>TIME_IMMEDIATE</em> immediate timeout.</li>
<li><em>TIME_INFINITE</em> no timeout.</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The operation result. </dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>RDY_OK</em>&nbsp;</td><td>conversion finished. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>RDY_TIMEOUT</em>&nbsp;</td><td>conversion not finished within the specified time. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="adc_8c_source.html#l00222">222</a> of file <a class="el" href="adc_8c_source.html">adc.c</a>.</p>
2010-11-22 05:53:37 +00:00
<p>References <a class="el" href="struct_a_d_c_driver.html#ad27fb341e1688e910dde532009651f9c">ADCDriver::ad_sem</a>, <a class="el" href="struct_a_d_c_driver.html#aad88dcc5b92e368e1ec5b095df1a9f28">ADCDriver::ad_state</a>, <a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30a90848166c82f38aa379ec0f89ca29ac8">ADC_COMPLETE</a>, <a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30a7f2a1a2c5aece4f36847bf5cea31cd14">ADC_READY</a>, <a class="el" href="group___a_d_c.html#gga4cc65f146a01d46dccf54d6f67a1ce30ac7e9b56ff40aed13ba7bf7ee6ed6fc20">ADC_RUNNING</a>, <a class="el" href="group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9">chDbgAssert</a>, <a class="el" href="group__semaphores.html#ga924ec5d191bb8debe8727ae4dd5d6d03">chSemWaitTimeoutS()</a>, <a class="el" href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, <a class="el" href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>, and <a class="el" href="group__scheduler.html#gaf28d5427eeeb8f737cc7db495157780c">RDY_TIMEOUT</a>.</p>
2010-08-10 03:11:02 +00:00
<p><div class="dynheader">
Here is the call graph for this function:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<div class="center"><img src="group___a_d_c_ga026ac46dfe36031ab177e35f3aff5b09_cgraph.png" border="0" usemap="#group___a_d_c_ga026ac46dfe36031ab177e35f3aff5b09_cgraph" alt=""/></div>
<map name="group___a_d_c_ga026ac46dfe36031ab177e35f3aff5b09_cgraph" id="group___a_d_c_ga026ac46dfe36031ab177e35f3aff5b09_cgraph">
<area shape="rect" id="node3" href="group__semaphores.html#ga924ec5d191bb8debe8727ae4dd5d6d03" title="Performs a wait operation on a semaphore with timeout specification." alt="" coords="171,5,291,32"/> <area shape="rect" id="node5" href="group__scheduler.html#ga306e564f678c1a39139639490c77e78b" title="Puts the current thread to sleep into the specified state with timeout specification." alt="" coords="339,5,477,32"/> </map>
2010-08-10 03:11:02 +00:00
</div>
</p>
</div>
</div>
</div>
<hr size="1"><address style="text-align: right;"><small>
2010-11-22 05:53:37 +00:00
Generated on Sun Oct 24 2010 09:40:47 for ChibiOS/RT by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.7.1</small></address>
2010-08-10 03:11:02 +00:00
</body>
</html>