Micro template library A library for building device drivers
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

classutl_1_1i2c__i.html 42 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853
  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>