Micro template library A library for building device drivers
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

854 lines
42 KiB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <meta name="generator" content="Doxygen 1.8.14"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>uTL: utl::i2c_i&lt; impl_t &gt; Class Template Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <link href="navtree.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="resize.js"></script>
  14. <script type="text/javascript" src="navtreedata.js"></script>
  15. <script type="text/javascript" src="navtree.js"></script>
  16. <script type="text/javascript">
  17. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  18. $(document).ready(initResizable);
  19. /* @license-end */</script>
  20. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  21. <script type="text/javascript" src="search/searchdata.js"></script>
  22. <script type="text/javascript" src="search/search.js"></script>
  23. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  24. </head>
  25. <body>
  26. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  27. <div id="titlearea">
  28. <table cellspacing="0" cellpadding="0">
  29. <tbody>
  30. <tr style="height: 56px;">
  31. <td id="projectalign" style="padding-left: 0.5em;">
  32. <div id="projectname">uTL
  33. </div>
  34. <div id="projectbrief">micro Template library</div>
  35. </td>
  36. </tr>
  37. </tbody>
  38. </table>
  39. </div>
  40. <!-- end header part -->
  41. <!-- Generated by Doxygen 1.8.14 -->
  42. <script type="text/javascript">
  43. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  44. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  45. /* @license-end */
  46. </script>
  47. <script type="text/javascript" src="menudata.js"></script>
  48. <script type="text/javascript" src="menu.js"></script>
  49. <script type="text/javascript">
  50. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  51. $(function() {
  52. initMenu('',true,false,'search.php','Search');
  53. $(document).ready(function() { init_search(); });
  54. });
  55. /* @license-end */</script>
  56. <div id="main-nav"></div>
  57. </div><!-- top -->
  58. <div id="side-nav" class="ui-resizable side-nav-resizable">
  59. <div id="nav-tree">
  60. <div id="nav-tree-contents">
  61. <div id="nav-sync" class="sync"></div>
  62. </div>
  63. </div>
  64. <div id="splitbar" style="-moz-user-select:none;"
  65. class="ui-resizable-handle">
  66. </div>
  67. </div>
  68. <script type="text/javascript">
  69. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  70. $(document).ready(function(){initNavTree('classutl_1_1i2c__i.html','');});
  71. /* @license-end */
  72. </script>
  73. <div id="doc-content">
  74. <!-- window showing the filter options -->
  75. <div id="MSearchSelectWindow"
  76. onmouseover="return searchBox.OnSearchSelectShow()"
  77. onmouseout="return searchBox.OnSearchSelectHide()"
  78. onkeydown="return searchBox.OnSearchSelectKey(event)">
  79. </div>
  80. <!-- iframe showing the search results (closed by default) -->
  81. <div id="MSearchResultsWindow">
  82. <iframe src="javascript:void(0)" frameborder="0"
  83. name="MSearchResults" id="MSearchResults">
  84. </iframe>
  85. </div>
  86. <div class="header">
  87. <div class="summary">
  88. <a href="#pub-types">Public Types</a> &#124;
  89. <a href="#pri-methods">Private Member Functions</a> &#124;
  90. <a href="classutl_1_1i2c__i-members.html">List of all members</a> </div>
  91. <div class="headertitle">
  92. <div class="title">utl::i2c_i&lt; impl_t &gt; Class Template Reference</div> </div>
  93. </div><!--header-->
  94. <div class="contents">
  95. <p>Abstract base class for i2c bus.
  96. <a href="classutl_1_1i2c__i.html#details">More...</a></p>
  97. <p><code>#include &lt;<a class="el" href="i2c_8h_source.html">i2c.h</a>&gt;</code></p>
  98. <table class="memberdecls">
  99. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
  100. Public Types</h2></td></tr>
  101. <tr class="memitem:a7e2dde443c6c9bde4a2293beb22950c5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5">Sequence</a> { <a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5ae409eb2ba6eb6801f52763ae370c350e">Sequence::BYTE</a> =0,
  102. <a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5a0fc437bc317835cad5faafc12a83fad5">Sequence::ACK</a>,
  103. <a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5a01af7e5aa5863a91810dd4e5d0e383ce">Sequence::BYTEnACK</a>
  104. }</td></tr>
  105. <tr class="memdesc:a7e2dde443c6c9bde4a2293beb22950c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">I2C transmit/receive sequence. <a href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5">More...</a><br /></td></tr>
  106. <tr class="separator:a7e2dde443c6c9bde4a2293beb22950c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  107. <tr class="memitem:aa9267a8602702b78f188e0cf61b68a55"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#aa9267a8602702b78f188e0cf61b68a55">type</a> = <a class="el" href="classutl_1_1i2c__i.html">i2c_i</a>&lt; impl_t &gt;</td></tr>
  108. <tr class="separator:aa9267a8602702b78f188e0cf61b68a55"><td class="memSeparator" colspan="2">&#160;</td></tr>
  109. </table><table class="memberdecls">
  110. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  111. Public Member Functions</h2></td></tr>
  112. <tr><td colspan="2"><div class="groupHeader">Get/Set functions</div></td></tr>
  113. <tr class="memitem:aac5fed816701cc4543acd717ec804ac0"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#aac5fed816701cc4543acd717ec804ac0">clock</a> () const</td></tr>
  114. <tr class="separator:aac5fed816701cc4543acd717ec804ac0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  115. <tr class="memitem:ae4c59938aeeb1f0726195d425a4c0083"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#ae4c59938aeeb1f0726195d425a4c0083">clock</a> (uint32_t f)</td></tr>
  116. <tr class="memdesc:ae4c59938aeeb1f0726195d425a4c0083"><td class="mdescLeft">&#160;</td><td class="mdescRight">set clock frequency of the bus <a href="#ae4c59938aeeb1f0726195d425a4c0083">More...</a><br /></td></tr>
  117. <tr class="separator:ae4c59938aeeb1f0726195d425a4c0083"><td class="memSeparator" colspan="2">&#160;</td></tr>
  118. <tr><td colspan="2"><div class="groupHeader">User functions</div></td></tr>
  119. <tr class="memitem:a3591683e5fbf17b582f6ac1f79af871d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#a3591683e5fbf17b582f6ac1f79af871d">start</a> ()</td></tr>
  120. <tr class="memdesc:a3591683e5fbf17b582f6ac1f79af871d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send start functionality. <a href="#a3591683e5fbf17b582f6ac1f79af871d">More...</a><br /></td></tr>
  121. <tr class="separator:a3591683e5fbf17b582f6ac1f79af871d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  122. <tr class="memitem:a1310b52ac908b8c37059fb253cc3f56e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#a1310b52ac908b8c37059fb253cc3f56e">stop</a> ()</td></tr>
  123. <tr class="memdesc:a1310b52ac908b8c37059fb253cc3f56e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send stop functionality. <a href="#a1310b52ac908b8c37059fb253cc3f56e">More...</a><br /></td></tr>
  124. <tr class="separator:a1310b52ac908b8c37059fb253cc3f56e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  125. <tr class="memitem:ab2f6a579096b4872f5dfd1530e200eda"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#ab2f6a579096b4872f5dfd1530e200eda">rx_data</a> (bool ack, <a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5">Sequence</a> seq=<a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5a01af7e5aa5863a91810dd4e5d0e383ce">Sequence::BYTEnACK</a>)</td></tr>
  126. <tr class="memdesc:ab2f6a579096b4872f5dfd1530e200eda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive a byte from the i2c bus. <a href="#ab2f6a579096b4872f5dfd1530e200eda">More...</a><br /></td></tr>
  127. <tr class="separator:ab2f6a579096b4872f5dfd1530e200eda"><td class="memSeparator" colspan="2">&#160;</td></tr>
  128. <tr class="memitem:aaf0b0ceec57fd8014ea3e6b58e9bfe3d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#aaf0b0ceec57fd8014ea3e6b58e9bfe3d">tx_data</a> (<a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> byte, <a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5">Sequence</a> seq=<a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5a01af7e5aa5863a91810dd4e5d0e383ce">Sequence::BYTEnACK</a>)</td></tr>
  129. <tr class="memdesc:aaf0b0ceec57fd8014ea3e6b58e9bfe3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmit a byte to the i2c bus. <a href="#aaf0b0ceec57fd8014ea3e6b58e9bfe3d">More...</a><br /></td></tr>
  130. <tr class="separator:aaf0b0ceec57fd8014ea3e6b58e9bfe3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  131. </table><table class="memberdecls">
  132. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
  133. Protected Member Functions</h2></td></tr>
  134. <tr><td colspan="2"><div class="groupHeader">Object lifetime</div></td></tr>
  135. <tr class="memitem:a84375c05d1c40d9992aa1290dd488410"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#a84375c05d1c40d9992aa1290dd488410">i2c_i</a> ()=default</td></tr>
  136. <tr class="memdesc:a84375c05d1c40d9992aa1290dd488410"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow constructor from derived only. <a href="#a84375c05d1c40d9992aa1290dd488410">More...</a><br /></td></tr>
  137. <tr class="separator:a84375c05d1c40d9992aa1290dd488410"><td class="memSeparator" colspan="2">&#160;</td></tr>
  138. <tr class="memitem:a6a07d19db8974ad606031b60a6079957"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#a6a07d19db8974ad606031b60a6079957">~i2c_i</a> ()=default</td></tr>
  139. <tr class="memdesc:a6a07d19db8974ad606031b60a6079957"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow destructor from derived only. <a href="#a6a07d19db8974ad606031b60a6079957">More...</a><br /></td></tr>
  140. <tr class="separator:a6a07d19db8974ad606031b60a6079957"><td class="memSeparator" colspan="2">&#160;</td></tr>
  141. <tr class="memitem:adff01408628f58b7c6ce9b0cd63d70df"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#adff01408628f58b7c6ce9b0cd63d70df">i2c_i</a> (const <a class="el" href="classutl_1_1i2c__i.html#aa9267a8602702b78f188e0cf61b68a55">type</a> &amp;)=delete</td></tr>
  142. <tr class="memdesc:adff01408628f58b7c6ce9b0cd63d70df"><td class="mdescLeft">&#160;</td><td class="mdescRight">No copies. <a href="#adff01408628f58b7c6ce9b0cd63d70df">More...</a><br /></td></tr>
  143. <tr class="separator:adff01408628f58b7c6ce9b0cd63d70df"><td class="memSeparator" colspan="2">&#160;</td></tr>
  144. <tr class="memitem:aee83d11e02c3a0639dd3ed1ea440ed24"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classutl_1_1i2c__i.html#aa9267a8602702b78f188e0cf61b68a55">type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#aee83d11e02c3a0639dd3ed1ea440ed24">operator=</a> (const <a class="el" href="classutl_1_1i2c__i.html#aa9267a8602702b78f188e0cf61b68a55">type</a> &amp;)=delete</td></tr>
  145. <tr class="separator:aee83d11e02c3a0639dd3ed1ea440ed24"><td class="memSeparator" colspan="2">&#160;</td></tr>
  146. </table><table class="memberdecls">
  147. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
  148. Private Member Functions</h2></td></tr>
  149. <tr class="memitem:a054b6bc43f22e14d4e9feb0772f7ada5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#a054b6bc43f22e14d4e9feb0772f7ada5">_CRTP_IMPL</a> (impl_t)</td></tr>
  150. <tr class="separator:a054b6bc43f22e14d4e9feb0772f7ada5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  151. <tr><td colspan="2"><div class="groupHeader">Implementation requirements</div></td></tr>
  152. <tr><td colspan="2"><div class="groupText"><dl class="section note"><dt>Note</dt><dd>In order for the implementation to have the following as private members it also need to declare this class as friend </dd></dl>
  153. </div></td></tr>
  154. <tr class="memitem:aefdea61282b9282ae10384951bb4ea51"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#aefdea61282b9282ae10384951bb4ea51">_clock</a> () const</td></tr>
  155. <tr class="memdesc:aefdea61282b9282ae10384951bb4ea51"><td class="mdescLeft">&#160;</td><td class="mdescRight">clock frequency of the bus [Hz] <a href="#aefdea61282b9282ae10384951bb4ea51">More...</a><br /></td></tr>
  156. <tr class="separator:aefdea61282b9282ae10384951bb4ea51"><td class="memSeparator" colspan="2">&#160;</td></tr>
  157. <tr class="memitem:afa0b1552f8fc7c971456fab1ad01242d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#afa0b1552f8fc7c971456fab1ad01242d">_clock</a> (uint32_t c)</td></tr>
  158. <tr class="memdesc:afa0b1552f8fc7c971456fab1ad01242d"><td class="mdescLeft">&#160;</td><td class="mdescRight">set clock frequency of the bus [Hz] <a href="#afa0b1552f8fc7c971456fab1ad01242d">More...</a><br /></td></tr>
  159. <tr class="separator:afa0b1552f8fc7c971456fab1ad01242d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  160. <tr class="memitem:af060d656c685c1ab5dd6981c5c88b26d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#af060d656c685c1ab5dd6981c5c88b26d">_start</a> ()</td></tr>
  161. <tr class="memdesc:af060d656c685c1ab5dd6981c5c88b26d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send start functionality. <a href="#af060d656c685c1ab5dd6981c5c88b26d">More...</a><br /></td></tr>
  162. <tr class="separator:af060d656c685c1ab5dd6981c5c88b26d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  163. <tr class="memitem:aa6202c6c7c1282071ae962fa6bb0f195"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#aa6202c6c7c1282071ae962fa6bb0f195">_stop</a> ()</td></tr>
  164. <tr class="memdesc:aa6202c6c7c1282071ae962fa6bb0f195"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send stop functionality. <a href="#aa6202c6c7c1282071ae962fa6bb0f195">More...</a><br /></td></tr>
  165. <tr class="separator:aa6202c6c7c1282071ae962fa6bb0f195"><td class="memSeparator" colspan="2">&#160;</td></tr>
  166. <tr class="memitem:a03a25367cdec7ceb76f8de9d5b3145fb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#a03a25367cdec7ceb76f8de9d5b3145fb">_rx_data</a> (bool ack, <a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5">Sequence</a> seq)</td></tr>
  167. <tr class="separator:a03a25367cdec7ceb76f8de9d5b3145fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  168. <tr class="memitem:ae2b164d2c085d5331b627ba711bbb2c9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__i.html#ae2b164d2c085d5331b627ba711bbb2c9">_tx_data</a> (<a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> byte, <a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5">Sequence</a> seq)</td></tr>
  169. <tr class="separator:ae2b164d2c085d5331b627ba711bbb2c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  170. </table>
  171. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  172. <div class="textblock"><h3>template&lt;typename impl_t&gt;<br />
  173. class utl::i2c_i&lt; impl_t &gt;</h3>
  174. <p>Abstract base class for i2c bus. </p>
  175. <p>this class force a common interface for I2C communication protocol implementations using CRTP </p><dl class="params"><dt>Parameters</dt><dd>
  176. <table class="params">
  177. <tr><td class="paramname">impl_t</td><td>The CRTP type (the derived/implementation class typename). </td></tr>
  178. </table>
  179. </dd>
  180. </dl>
  181. <p class="definition">Definition at line <a class="el" href="i2c_8h_source.html#l00043">43</a> of file <a class="el" href="i2c_8h_source.html">i2c.h</a>.</p>
  182. </div><h2 class="groupheader">Member Typedef Documentation</h2>
  183. <a id="aa9267a8602702b78f188e0cf61b68a55"></a>
  184. <h2 class="memtitle"><span class="permalink"><a href="#aa9267a8602702b78f188e0cf61b68a55">&#9670;&nbsp;</a></span>type</h2>
  185. <div class="memitem">
  186. <div class="memproto">
  187. <div class="memtemplate">
  188. template&lt;typename impl_t&gt; </div>
  189. <table class="memname">
  190. <tr>
  191. <td class="memname">using <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::<a class="el" href="classutl_1_1i2c__i.html#aa9267a8602702b78f188e0cf61b68a55">type</a> = <a class="el" href="classutl_1_1i2c__i.html">i2c_i</a>&lt;impl_t&gt;</td>
  192. </tr>
  193. </table>
  194. </div><div class="memdoc">
  195. <p>Export type as identity meta-function </p>
  196. <p class="definition">Definition at line <a class="el" href="i2c_8h_source.html#l00047">47</a> of file <a class="el" href="i2c_8h_source.html">i2c.h</a>.</p>
  197. </div>
  198. </div>
  199. <h2 class="groupheader">Member Enumeration Documentation</h2>
  200. <a id="a7e2dde443c6c9bde4a2293beb22950c5"></a>
  201. <h2 class="memtitle"><span class="permalink"><a href="#a7e2dde443c6c9bde4a2293beb22950c5">&#9670;&nbsp;</a></span>Sequence</h2>
  202. <div class="memitem">
  203. <div class="memproto">
  204. <div class="memtemplate">
  205. template&lt;typename impl_t&gt; </div>
  206. <table class="mlabels">
  207. <tr>
  208. <td class="mlabels-left">
  209. <table class="memname">
  210. <tr>
  211. <td class="memname">enum <a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5">utl::i2c_i::Sequence</a></td>
  212. </tr>
  213. </table>
  214. </td>
  215. <td class="mlabels-right">
  216. <span class="mlabels"><span class="mlabel">strong</span></span> </td>
  217. </tr>
  218. </table>
  219. </div><div class="memdoc">
  220. <p>I2C transmit/receive sequence. </p>
  221. <table class="fieldtable">
  222. <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a7e2dde443c6c9bde4a2293beb22950c5ae409eb2ba6eb6801f52763ae370c350e"></a>BYTE&#160;</td><td class="fielddoc"><p>Only read/write byte [8 clocks]. </p>
  223. </td></tr>
  224. <tr><td class="fieldname"><a id="a7e2dde443c6c9bde4a2293beb22950c5a0fc437bc317835cad5faafc12a83fad5"></a>ACK&#160;</td><td class="fielddoc"><p>Only send/receive ack [1 clock]. </p>
  225. </td></tr>
  226. <tr><td class="fieldname"><a id="a7e2dde443c6c9bde4a2293beb22950c5a01af7e5aa5863a91810dd4e5d0e383ce"></a>BYTEnACK&#160;</td><td class="fielddoc"><p>Read/Write byte and ack [9 clocks]. </p>
  227. </td></tr>
  228. </table>
  229. <p class="definition">Definition at line <a class="el" href="i2c_8h_source.html#l00049">49</a> of file <a class="el" href="i2c_8h_source.html">i2c.h</a>.</p>
  230. </div>
  231. </div>
  232. <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  233. <a id="a84375c05d1c40d9992aa1290dd488410"></a>
  234. <h2 class="memtitle"><span class="permalink"><a href="#a84375c05d1c40d9992aa1290dd488410">&#9670;&nbsp;</a></span>i2c_i() <span class="overload">[1/2]</span></h2>
  235. <div class="memitem">
  236. <div class="memproto">
  237. <div class="memtemplate">
  238. template&lt;typename impl_t&gt; </div>
  239. <table class="mlabels">
  240. <tr>
  241. <td class="mlabels-left">
  242. <table class="memname">
  243. <tr>
  244. <td class="memname"><a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::<a class="el" href="classutl_1_1i2c__i.html">i2c_i</a> </td>
  245. <td>(</td>
  246. <td class="paramname"></td><td>)</td>
  247. <td></td>
  248. </tr>
  249. </table>
  250. </td>
  251. <td class="mlabels-right">
  252. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">default</span></span> </td>
  253. </tr>
  254. </table>
  255. </div><div class="memdoc">
  256. <p>Allow constructor from derived only. </p>
  257. </div>
  258. </div>
  259. <a id="a6a07d19db8974ad606031b60a6079957"></a>
  260. <h2 class="memtitle"><span class="permalink"><a href="#a6a07d19db8974ad606031b60a6079957">&#9670;&nbsp;</a></span>~i2c_i()</h2>
  261. <div class="memitem">
  262. <div class="memproto">
  263. <div class="memtemplate">
  264. template&lt;typename impl_t&gt; </div>
  265. <table class="mlabels">
  266. <tr>
  267. <td class="mlabels-left">
  268. <table class="memname">
  269. <tr>
  270. <td class="memname"><a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::~<a class="el" href="classutl_1_1i2c__i.html">i2c_i</a> </td>
  271. <td>(</td>
  272. <td class="paramname"></td><td>)</td>
  273. <td></td>
  274. </tr>
  275. </table>
  276. </td>
  277. <td class="mlabels-right">
  278. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">default</span></span> </td>
  279. </tr>
  280. </table>
  281. </div><div class="memdoc">
  282. <p>Allow destructor from derived only. </p>
  283. </div>
  284. </div>
  285. <a id="adff01408628f58b7c6ce9b0cd63d70df"></a>
  286. <h2 class="memtitle"><span class="permalink"><a href="#adff01408628f58b7c6ce9b0cd63d70df">&#9670;&nbsp;</a></span>i2c_i() <span class="overload">[2/2]</span></h2>
  287. <div class="memitem">
  288. <div class="memproto">
  289. <div class="memtemplate">
  290. template&lt;typename impl_t&gt; </div>
  291. <table class="mlabels">
  292. <tr>
  293. <td class="mlabels-left">
  294. <table class="memname">
  295. <tr>
  296. <td class="memname"><a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::<a class="el" href="classutl_1_1i2c__i.html">i2c_i</a> </td>
  297. <td>(</td>
  298. <td class="paramtype">const <a class="el" href="classutl_1_1i2c__i.html#aa9267a8602702b78f188e0cf61b68a55">type</a> &amp;&#160;</td>
  299. <td class="paramname"></td><td>)</td>
  300. <td></td>
  301. </tr>
  302. </table>
  303. </td>
  304. <td class="mlabels-right">
  305. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">delete</span></span> </td>
  306. </tr>
  307. </table>
  308. </div><div class="memdoc">
  309. <p>No copies. </p>
  310. </div>
  311. </div>
  312. <h2 class="groupheader">Member Function Documentation</h2>
  313. <a id="aefdea61282b9282ae10384951bb4ea51"></a>
  314. <h2 class="memtitle"><span class="permalink"><a href="#aefdea61282b9282ae10384951bb4ea51">&#9670;&nbsp;</a></span>_clock() <span class="overload">[1/2]</span></h2>
  315. <div class="memitem">
  316. <div class="memproto">
  317. <div class="memtemplate">
  318. template&lt;typename impl_t&gt; </div>
  319. <table class="mlabels">
  320. <tr>
  321. <td class="mlabels-left">
  322. <table class="memname">
  323. <tr>
  324. <td class="memname">uint32_t <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::_clock </td>
  325. <td>(</td>
  326. <td class="paramname"></td><td>)</td>
  327. <td> const</td>
  328. </tr>
  329. </table>
  330. </td>
  331. <td class="mlabels-right">
  332. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
  333. </tr>
  334. </table>
  335. </div><div class="memdoc">
  336. <p>clock frequency of the bus [Hz] </p>
  337. <p class="definition">Definition at line <a class="el" href="i2c_8h_source.html#l00074">74</a> of file <a class="el" href="i2c_8h_source.html">i2c.h</a>.</p>
  338. </div>
  339. </div>
  340. <a id="afa0b1552f8fc7c971456fab1ad01242d"></a>
  341. <h2 class="memtitle"><span class="permalink"><a href="#afa0b1552f8fc7c971456fab1ad01242d">&#9670;&nbsp;</a></span>_clock() <span class="overload">[2/2]</span></h2>
  342. <div class="memitem">
  343. <div class="memproto">
  344. <div class="memtemplate">
  345. template&lt;typename impl_t&gt; </div>
  346. <table class="mlabels">
  347. <tr>
  348. <td class="mlabels-left">
  349. <table class="memname">
  350. <tr>
  351. <td class="memname">void <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::_clock </td>
  352. <td>(</td>
  353. <td class="paramtype">uint32_t&#160;</td>
  354. <td class="paramname"><em>c</em></td><td>)</td>
  355. <td></td>
  356. </tr>
  357. </table>
  358. </td>
  359. <td class="mlabels-right">
  360. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
  361. </tr>
  362. </table>
  363. </div><div class="memdoc">
  364. <p>set clock frequency of the bus [Hz] </p>
  365. <p class="definition">Definition at line <a class="el" href="i2c_8h_source.html#l00075">75</a> of file <a class="el" href="i2c_8h_source.html">i2c.h</a>.</p>
  366. </div>
  367. </div>
  368. <a id="a054b6bc43f22e14d4e9feb0772f7ada5"></a>
  369. <h2 class="memtitle"><span class="permalink"><a href="#a054b6bc43f22e14d4e9feb0772f7ada5">&#9670;&nbsp;</a></span>_CRTP_IMPL()</h2>
  370. <div class="memitem">
  371. <div class="memproto">
  372. <div class="memtemplate">
  373. template&lt;typename impl_t&gt; </div>
  374. <table class="mlabels">
  375. <tr>
  376. <td class="mlabels-left">
  377. <table class="memname">
  378. <tr>
  379. <td class="memname"><a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::_CRTP_IMPL </td>
  380. <td>(</td>
  381. <td class="paramtype">impl_t&#160;</td>
  382. <td class="paramname"></td><td>)</td>
  383. <td></td>
  384. </tr>
  385. </table>
  386. </td>
  387. <td class="mlabels-right">
  388. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  389. </tr>
  390. </table>
  391. </div><div class="memdoc">
  392. </div>
  393. </div>
  394. <a id="a03a25367cdec7ceb76f8de9d5b3145fb"></a>
  395. <h2 class="memtitle"><span class="permalink"><a href="#a03a25367cdec7ceb76f8de9d5b3145fb">&#9670;&nbsp;</a></span>_rx_data()</h2>
  396. <div class="memitem">
  397. <div class="memproto">
  398. <div class="memtemplate">
  399. template&lt;typename impl_t&gt; </div>
  400. <table class="mlabels">
  401. <tr>
  402. <td class="mlabels-left">
  403. <table class="memname">
  404. <tr>
  405. <td class="memname"><a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::_rx_data </td>
  406. <td>(</td>
  407. <td class="paramtype">bool&#160;</td>
  408. <td class="paramname"><em>ack</em>, </td>
  409. </tr>
  410. <tr>
  411. <td class="paramkey"></td>
  412. <td></td>
  413. <td class="paramtype"><a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5">Sequence</a>&#160;</td>
  414. <td class="paramname"><em>seq</em>&#160;</td>
  415. </tr>
  416. <tr>
  417. <td></td>
  418. <td>)</td>
  419. <td></td><td></td>
  420. </tr>
  421. </table>
  422. </td>
  423. <td class="mlabels-right">
  424. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
  425. </tr>
  426. </table>
  427. </div><div class="memdoc">
  428. <p class="definition">Definition at line <a class="el" href="i2c_8h_source.html#l00078">78</a> of file <a class="el" href="i2c_8h_source.html">i2c.h</a>.</p>
  429. </div>
  430. </div>
  431. <a id="af060d656c685c1ab5dd6981c5c88b26d"></a>
  432. <h2 class="memtitle"><span class="permalink"><a href="#af060d656c685c1ab5dd6981c5c88b26d">&#9670;&nbsp;</a></span>_start()</h2>
  433. <div class="memitem">
  434. <div class="memproto">
  435. <div class="memtemplate">
  436. template&lt;typename impl_t&gt; </div>
  437. <table class="mlabels">
  438. <tr>
  439. <td class="mlabels-left">
  440. <table class="memname">
  441. <tr>
  442. <td class="memname">void <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::_start </td>
  443. <td>(</td>
  444. <td class="paramname"></td><td>)</td>
  445. <td></td>
  446. </tr>
  447. </table>
  448. </td>
  449. <td class="mlabels-right">
  450. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
  451. </tr>
  452. </table>
  453. </div><div class="memdoc">
  454. <p>Send start functionality. </p>
  455. <p class="definition">Definition at line <a class="el" href="i2c_8h_source.html#l00076">76</a> of file <a class="el" href="i2c_8h_source.html">i2c.h</a>.</p>
  456. </div>
  457. </div>
  458. <a id="aa6202c6c7c1282071ae962fa6bb0f195"></a>
  459. <h2 class="memtitle"><span class="permalink"><a href="#aa6202c6c7c1282071ae962fa6bb0f195">&#9670;&nbsp;</a></span>_stop()</h2>
  460. <div class="memitem">
  461. <div class="memproto">
  462. <div class="memtemplate">
  463. template&lt;typename impl_t&gt; </div>
  464. <table class="mlabels">
  465. <tr>
  466. <td class="mlabels-left">
  467. <table class="memname">
  468. <tr>
  469. <td class="memname">void <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::_stop </td>
  470. <td>(</td>
  471. <td class="paramname"></td><td>)</td>
  472. <td></td>
  473. </tr>
  474. </table>
  475. </td>
  476. <td class="mlabels-right">
  477. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
  478. </tr>
  479. </table>
  480. </div><div class="memdoc">
  481. <p>Send stop functionality. </p>
  482. <p class="definition">Definition at line <a class="el" href="i2c_8h_source.html#l00077">77</a> of file <a class="el" href="i2c_8h_source.html">i2c.h</a>.</p>
  483. </div>
  484. </div>
  485. <a id="ae2b164d2c085d5331b627ba711bbb2c9"></a>
  486. <h2 class="memtitle"><span class="permalink"><a href="#ae2b164d2c085d5331b627ba711bbb2c9">&#9670;&nbsp;</a></span>_tx_data()</h2>
  487. <div class="memitem">
  488. <div class="memproto">
  489. <div class="memtemplate">
  490. template&lt;typename impl_t&gt; </div>
  491. <table class="mlabels">
  492. <tr>
  493. <td class="mlabels-left">
  494. <table class="memname">
  495. <tr>
  496. <td class="memname">bool <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::_tx_data </td>
  497. <td>(</td>
  498. <td class="paramtype"><a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a>&#160;</td>
  499. <td class="paramname"><em>byte</em>, </td>
  500. </tr>
  501. <tr>
  502. <td class="paramkey"></td>
  503. <td></td>
  504. <td class="paramtype"><a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5">Sequence</a>&#160;</td>
  505. <td class="paramname"><em>seq</em>&#160;</td>
  506. </tr>
  507. <tr>
  508. <td></td>
  509. <td>)</td>
  510. <td></td><td></td>
  511. </tr>
  512. </table>
  513. </td>
  514. <td class="mlabels-right">
  515. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
  516. </tr>
  517. </table>
  518. </div><div class="memdoc">
  519. <p class="definition">Definition at line <a class="el" href="i2c_8h_source.html#l00079">79</a> of file <a class="el" href="i2c_8h_source.html">i2c.h</a>.</p>
  520. </div>
  521. </div>
  522. <a id="aac5fed816701cc4543acd717ec804ac0"></a>
  523. <h2 class="memtitle"><span class="permalink"><a href="#aac5fed816701cc4543acd717ec804ac0">&#9670;&nbsp;</a></span>clock() <span class="overload">[1/2]</span></h2>
  524. <div class="memitem">
  525. <div class="memproto">
  526. <div class="memtemplate">
  527. template&lt;typename impl_t&gt; </div>
  528. <table class="mlabels">
  529. <tr>
  530. <td class="mlabels-left">
  531. <table class="memname">
  532. <tr>
  533. <td class="memname">uint32_t <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::clock </td>
  534. <td>(</td>
  535. <td class="paramname"></td><td>)</td>
  536. <td> const</td>
  537. </tr>
  538. </table>
  539. </td>
  540. <td class="mlabels-right">
  541. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  542. </tr>
  543. </table>
  544. </div><div class="memdoc">
  545. <dl class="section return"><dt>Returns</dt><dd>clock frequency of the bus </dd></dl>
  546. <p class="definition">Definition at line <a class="el" href="i2c_8h_source.html#l00087">87</a> of file <a class="el" href="i2c_8h_source.html">i2c.h</a>.</p>
  547. </div>
  548. </div>
  549. <a id="ae4c59938aeeb1f0726195d425a4c0083"></a>
  550. <h2 class="memtitle"><span class="permalink"><a href="#ae4c59938aeeb1f0726195d425a4c0083">&#9670;&nbsp;</a></span>clock() <span class="overload">[2/2]</span></h2>
  551. <div class="memitem">
  552. <div class="memproto">
  553. <div class="memtemplate">
  554. template&lt;typename impl_t&gt; </div>
  555. <table class="mlabels">
  556. <tr>
  557. <td class="mlabels-left">
  558. <table class="memname">
  559. <tr>
  560. <td class="memname">void <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::clock </td>
  561. <td>(</td>
  562. <td class="paramtype">uint32_t&#160;</td>
  563. <td class="paramname"><em>f</em></td><td>)</td>
  564. <td></td>
  565. </tr>
  566. </table>
  567. </td>
  568. <td class="mlabels-right">
  569. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  570. </tr>
  571. </table>
  572. </div><div class="memdoc">
  573. <p>set clock frequency of the bus </p>
  574. <p class="definition">Definition at line <a class="el" href="i2c_8h_source.html#l00088">88</a> of file <a class="el" href="i2c_8h_source.html">i2c.h</a>.</p>
  575. </div>
  576. </div>
  577. <a id="aee83d11e02c3a0639dd3ed1ea440ed24"></a>
  578. <h2 class="memtitle"><span class="permalink"><a href="#aee83d11e02c3a0639dd3ed1ea440ed24">&#9670;&nbsp;</a></span>operator=()</h2>
  579. <div class="memitem">
  580. <div class="memproto">
  581. <div class="memtemplate">
  582. template&lt;typename impl_t&gt; </div>
  583. <table class="mlabels">
  584. <tr>
  585. <td class="mlabels-left">
  586. <table class="memname">
  587. <tr>
  588. <td class="memname"><a class="el" href="classutl_1_1i2c__i.html#aa9267a8602702b78f188e0cf61b68a55">type</a>&amp; <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::operator= </td>
  589. <td>(</td>
  590. <td class="paramtype">const <a class="el" href="classutl_1_1i2c__i.html#aa9267a8602702b78f188e0cf61b68a55">type</a> &amp;&#160;</td>
  591. <td class="paramname"></td><td>)</td>
  592. <td></td>
  593. </tr>
  594. </table>
  595. </td>
  596. <td class="mlabels-right">
  597. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">delete</span></span> </td>
  598. </tr>
  599. </table>
  600. </div><div class="memdoc">
  601. </div>
  602. </div>
  603. <a id="ab2f6a579096b4872f5dfd1530e200eda"></a>
  604. <h2 class="memtitle"><span class="permalink"><a href="#ab2f6a579096b4872f5dfd1530e200eda">&#9670;&nbsp;</a></span>rx_data()</h2>
  605. <div class="memitem">
  606. <div class="memproto">
  607. <div class="memtemplate">
  608. template&lt;typename impl_t&gt; </div>
  609. <table class="mlabels">
  610. <tr>
  611. <td class="mlabels-left">
  612. <table class="memname">
  613. <tr>
  614. <td class="memname"><a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::rx_data </td>
  615. <td>(</td>
  616. <td class="paramtype">bool&#160;</td>
  617. <td class="paramname"><em>ack</em>, </td>
  618. </tr>
  619. <tr>
  620. <td class="paramkey"></td>
  621. <td></td>
  622. <td class="paramtype"><a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5">Sequence</a>&#160;</td>
  623. <td class="paramname"><em>seq</em> = <code><a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5a01af7e5aa5863a91810dd4e5d0e383ce">Sequence::BYTEnACK</a></code>&#160;</td>
  624. </tr>
  625. <tr>
  626. <td></td>
  627. <td>)</td>
  628. <td></td><td></td>
  629. </tr>
  630. </table>
  631. </td>
  632. <td class="mlabels-right">
  633. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  634. </tr>
  635. </table>
  636. </div><div class="memdoc">
  637. <p>Receive a byte from the i2c bus. </p>
  638. <dl class="params"><dt>Parameters</dt><dd>
  639. <table class="params">
  640. <tr><td class="paramname">ack</td><td>Optional ack bit. <ul>
  641. <li>1 ACK the reception </li>
  642. <li>0 Don't ACK the reception. </li>
  643. </ul>
  644. </td></tr>
  645. <tr><td class="paramname">seq</td><td>The operation sequence to execute <ul>
  646. <li><a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5ae409eb2ba6eb6801f52763ae370c350e" title="Only read/write byte [8 clocks]. ">Sequence::BYTE</a> Receive only the byte, do not send ack clock </li>
  647. <li><a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5a0fc437bc317835cad5faafc12a83fad5" title="Only send/receive ack [1 clock]. ">Sequence::ACK</a> Send only the ack bit </li>
  648. <li><a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5a01af7e5aa5863a91810dd4e5d0e383ce" title="Read/Write byte and ack [9 clocks]. ">Sequence::BYTEnACK</a> Receive the byte and send the ack bit </li>
  649. </ul>
  650. </td></tr>
  651. </table>
  652. </dd>
  653. </dl>
  654. <dl class="section return"><dt>Returns</dt><dd>The byte received. </dd></dl>
  655. <p class="definition">Definition at line <a class="el" href="i2c_8h_source.html#l00111">111</a> of file <a class="el" href="i2c_8h_source.html">i2c.h</a>.</p>
  656. </div>
  657. </div>
  658. <a id="a3591683e5fbf17b582f6ac1f79af871d"></a>
  659. <h2 class="memtitle"><span class="permalink"><a href="#a3591683e5fbf17b582f6ac1f79af871d">&#9670;&nbsp;</a></span>start()</h2>
  660. <div class="memitem">
  661. <div class="memproto">
  662. <div class="memtemplate">
  663. template&lt;typename impl_t&gt; </div>
  664. <table class="mlabels">
  665. <tr>
  666. <td class="mlabels-left">
  667. <table class="memname">
  668. <tr>
  669. <td class="memname">void <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::start </td>
  670. <td>(</td>
  671. <td class="paramname"></td><td>)</td>
  672. <td></td>
  673. </tr>
  674. </table>
  675. </td>
  676. <td class="mlabels-right">
  677. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  678. </tr>
  679. </table>
  680. </div><div class="memdoc">
  681. <p>Send start functionality. </p>
  682. <p class="definition">Definition at line <a class="el" href="i2c_8h_source.html#l00096">96</a> of file <a class="el" href="i2c_8h_source.html">i2c.h</a>.</p>
  683. </div>
  684. </div>
  685. <a id="a1310b52ac908b8c37059fb253cc3f56e"></a>
  686. <h2 class="memtitle"><span class="permalink"><a href="#a1310b52ac908b8c37059fb253cc3f56e">&#9670;&nbsp;</a></span>stop()</h2>
  687. <div class="memitem">
  688. <div class="memproto">
  689. <div class="memtemplate">
  690. template&lt;typename impl_t&gt; </div>
  691. <table class="mlabels">
  692. <tr>
  693. <td class="mlabels-left">
  694. <table class="memname">
  695. <tr>
  696. <td class="memname">void <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::stop </td>
  697. <td>(</td>
  698. <td class="paramname"></td><td>)</td>
  699. <td></td>
  700. </tr>
  701. </table>
  702. </td>
  703. <td class="mlabels-right">
  704. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  705. </tr>
  706. </table>
  707. </div><div class="memdoc">
  708. <p>Send stop functionality. </p>
  709. <p class="definition">Definition at line <a class="el" href="i2c_8h_source.html#l00097">97</a> of file <a class="el" href="i2c_8h_source.html">i2c.h</a>.</p>
  710. </div>
  711. </div>
  712. <a id="aaf0b0ceec57fd8014ea3e6b58e9bfe3d"></a>
  713. <h2 class="memtitle"><span class="permalink"><a href="#aaf0b0ceec57fd8014ea3e6b58e9bfe3d">&#9670;&nbsp;</a></span>tx_data()</h2>
  714. <div class="memitem">
  715. <div class="memproto">
  716. <div class="memtemplate">
  717. template&lt;typename impl_t&gt; </div>
  718. <table class="mlabels">
  719. <tr>
  720. <td class="mlabels-left">
  721. <table class="memname">
  722. <tr>
  723. <td class="memname">bool <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i</a>&lt; impl_t &gt;::tx_data </td>
  724. <td>(</td>
  725. <td class="paramtype"><a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a>&#160;</td>
  726. <td class="paramname"><em>byte</em>, </td>
  727. </tr>
  728. <tr>
  729. <td class="paramkey"></td>
  730. <td></td>
  731. <td class="paramtype"><a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5">Sequence</a>&#160;</td>
  732. <td class="paramname"><em>seq</em> = <code><a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5a01af7e5aa5863a91810dd4e5d0e383ce">Sequence::BYTEnACK</a></code>&#160;</td>
  733. </tr>
  734. <tr>
  735. <td></td>
  736. <td>)</td>
  737. <td></td><td></td>
  738. </tr>
  739. </table>
  740. </td>
  741. <td class="mlabels-right">
  742. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  743. </tr>
  744. </table>
  745. </div><div class="memdoc">
  746. <p>Transmit a byte to the i2c bus. </p>
  747. <dl class="params"><dt>Parameters</dt><dd>
  748. <table class="params">
  749. <tr><td class="paramname">byte</td><td>The byte to send. </td></tr>
  750. <tr><td class="paramname">seq</td><td>The operation sequence to execute <ul>
  751. <li><a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5ae409eb2ba6eb6801f52763ae370c350e" title="Only read/write byte [8 clocks]. ">Sequence::BYTE</a> Transmit only the byte, do not read ack bit </li>
  752. <li><a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5a0fc437bc317835cad5faafc12a83fad5" title="Only send/receive ack [1 clock]. ">Sequence::ACK</a> Read only the ack bit </li>
  753. <li><a class="el" href="classutl_1_1i2c__i.html#a7e2dde443c6c9bde4a2293beb22950c5a01af7e5aa5863a91810dd4e5d0e383ce" title="Read/Write byte and ack [9 clocks]. ">Sequence::BYTEnACK</a> Transmit the byte and read the ack bit </li>
  754. </ul>
  755. </td></tr>
  756. </table>
  757. </dd>
  758. </dl>
  759. <dl class="section return"><dt>Returns</dt><dd>Slave's ACK bit <ul>
  760. <li>false Slave didn't ACK </li>
  761. <li>true Slave did ACK </li>
  762. </ul>
  763. </dd></dl>
  764. <p class="definition">Definition at line <a class="el" href="i2c_8h_source.html#l00127">127</a> of file <a class="el" href="i2c_8h_source.html">i2c.h</a>.</p>
  765. </div>
  766. </div>
  767. <hr/>The documentation for this class was generated from the following file:<ul>
  768. <li>include/utl/com/<a class="el" href="i2c_8h_source.html">i2c.h</a></li>
  769. </ul>
  770. </div><!-- contents -->
  771. </div><!-- doc-content -->
  772. <!-- start footer part -->
  773. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  774. <ul>
  775. <li class="navelem"><a class="el" href="namespaceutl.html">utl</a></li><li class="navelem"><a class="el" href="classutl_1_1i2c__i.html">i2c_i</a></li>
  776. <li class="footer">Generated by
  777. <a href="http://www.doxygen.org/index.html">
  778. <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
  779. </ul>
  780. </div>
  781. </body>
  782. </html>