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.
 
 
 
 

818 lines
47 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_bb_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__bb__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="#pri-attribs">Private Attributes</a> &#124;
  91. <a href="classutl_1_1i2c__bb__i-members.html">List of all members</a> </div>
  92. <div class="headertitle">
  93. <div class="title">utl::i2c_bb_i&lt; impl_t &gt; Class Template Reference</div> </div>
  94. </div><!--header-->
  95. <div class="contents">
  96. <p>A bit banking implementation of i2c bus inherited from <a class="el" href="classutl_1_1i2c__i.html">i2c_i</a> base class.
  97. <a href="classutl_1_1i2c__bb__i.html#details">More...</a></p>
  98. <p><code>#include &lt;<a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>&gt;</code></p>
  99. <div class="dynheader">
  100. Inheritance diagram for utl::i2c_bb_i&lt; impl_t &gt;:</div>
  101. <div class="dyncontent">
  102. <div class="center">
  103. <img src="classutl_1_1i2c__bb__i.png" usemap="#utl::i2c_5Fbb_5Fi_3C_20impl_5Ft_20_3E_map" alt=""/>
  104. <map id="utl::i2c_5Fbb_5Fi_3C_20impl_5Ft_20_3E_map" name="utl::i2c_5Fbb_5Fi_3C_20impl_5Ft_20_3E_map">
  105. <area href="classutl_1_1i2c__i.html" alt="utl::i2c_i&lt; i2c_bb_i&lt; impl_t &gt; &gt;" shape="rect" coords="0,0,186,24"/>
  106. </map>
  107. </div></div>
  108. <table class="memberdecls">
  109. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
  110. Public Types</h2></td></tr>
  111. <tr class="memitem:a4369b434fde250d503bfdc07d5c6a26d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__bb__i.html#a4369b434fde250d503bfdc07d5c6a26d">SDAMode</a> { <a class="el" href="classutl_1_1i2c__bb__i.html#a4369b434fde250d503bfdc07d5c6a26daa84cc046d48610b05c21fd3670d0c829">SDAMode::INPUT</a> =0,
  112. <a class="el" href="classutl_1_1i2c__bb__i.html#a4369b434fde250d503bfdc07d5c6a26da50a87f0d71f7221582dad4bf507a0f34">SDAMode::OUTPUT</a>
  113. }</td></tr>
  114. <tr class="memdesc:a4369b434fde250d503bfdc07d5c6a26d"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDA pin direction enumerator. <a href="classutl_1_1i2c__bb__i.html#a4369b434fde250d503bfdc07d5c6a26d">More...</a><br /></td></tr>
  115. <tr class="separator:a4369b434fde250d503bfdc07d5c6a26d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  116. <tr class="memitem:a428c847d950993fa2cd005416edfb720"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__bb__i.html#a428c847d950993fa2cd005416edfb720">type</a> = <a class="el" href="classutl_1_1i2c__bb__i.html">i2c_bb_i</a>&lt; impl_t &gt;</td></tr>
  117. <tr class="memdesc:a428c847d950993fa2cd005416edfb720"><td class="mdescLeft">&#160;</td><td class="mdescRight">Export type as identity meta-function. <a href="#a428c847d950993fa2cd005416edfb720">More...</a><br /></td></tr>
  118. <tr class="separator:a428c847d950993fa2cd005416edfb720"><td class="memSeparator" colspan="2">&#160;</td></tr>
  119. <tr class="memitem:ad2872b7e17116f8379144488fe135052"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__bb__i.html#ad2872b7e17116f8379144488fe135052">Sequence</a> = typename <a class="el" href="classutl_1_1i2c__i.html">i2c_i</a>&lt; <a class="el" href="classutl_1_1i2c__bb__i.html#a428c847d950993fa2cd005416edfb720">type</a> &gt;::<a class="el" href="classutl_1_1i2c__bb__i.html#ad2872b7e17116f8379144488fe135052">Sequence</a></td></tr>
  120. <tr class="separator:ad2872b7e17116f8379144488fe135052"><td class="memSeparator" colspan="2">&#160;</td></tr>
  121. <tr class="inherit_header pub_types_classutl_1_1i2c__i"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classutl_1_1i2c__i')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i&lt; i2c_bb_i&lt; impl_t &gt; &gt;</a></td></tr>
  122. <tr class="memitem:a7e2dde443c6c9bde4a2293beb22950c5 inherit pub_types_classutl_1_1i2c__i"><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> </td></tr>
  123. <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>
  124. <tr class="separator:a7e2dde443c6c9bde4a2293beb22950c5 inherit pub_types_classutl_1_1i2c__i"><td class="memSeparator" colspan="2">&#160;</td></tr>
  125. <tr class="memitem:aa9267a8602702b78f188e0cf61b68a55 inherit pub_types_classutl_1_1i2c__i"><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; <a class="el" href="classutl_1_1i2c__bb__i.html">i2c_bb_i</a>&lt; impl_t &gt; &gt;</td></tr>
  126. <tr class="separator:aa9267a8602702b78f188e0cf61b68a55 inherit pub_types_classutl_1_1i2c__i"><td class="memSeparator" colspan="2">&#160;</td></tr>
  127. </table><table class="memberdecls">
  128. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
  129. Protected Member Functions</h2></td></tr>
  130. <tr><td colspan="2"><div class="groupHeader">Object lifetime</div></td></tr>
  131. <tr class="memitem:ac2d9b97778a5dd57eb5e6425b4b0833c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__bb__i.html#ac2d9b97778a5dd57eb5e6425b4b0833c">~i2c_bb_i</a> () noexcept=default</td></tr>
  132. <tr class="memdesc:ac2d9b97778a5dd57eb5e6425b4b0833c"><td class="mdescLeft">&#160;</td><td class="mdescRight">A default destructor, allow destructor from derived only. <a href="#ac2d9b97778a5dd57eb5e6425b4b0833c">More...</a><br /></td></tr>
  133. <tr class="separator:ac2d9b97778a5dd57eb5e6425b4b0833c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  134. <tr class="memitem:ab657379ca2e4b3624e2d4520542a9464"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__bb__i.html#ab657379ca2e4b3624e2d4520542a9464">i2c_bb_i</a> (uint32_t clk) noexcept</td></tr>
  135. <tr class="memdesc:ab657379ca2e4b3624e2d4520542a9464"><td class="mdescLeft">&#160;</td><td class="mdescRight">A default constructor. <a href="#ab657379ca2e4b3624e2d4520542a9464">More...</a><br /></td></tr>
  136. <tr class="separator:ab657379ca2e4b3624e2d4520542a9464"><td class="memSeparator" colspan="2">&#160;</td></tr>
  137. <tr class="inherit_header pro_methods_classutl_1_1i2c__i"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classutl_1_1i2c__i')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i&lt; i2c_bb_i&lt; impl_t &gt; &gt;</a></td></tr>
  138. <tr class="memitem:a84375c05d1c40d9992aa1290dd488410 inherit pro_methods_classutl_1_1i2c__i"><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>
  139. <tr class="memdesc:a84375c05d1c40d9992aa1290dd488410 inherit pro_methods_classutl_1_1i2c__i"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow constructor from derived only. <a href="classutl_1_1i2c__i.html#a84375c05d1c40d9992aa1290dd488410">More...</a><br /></td></tr>
  140. <tr class="separator:a84375c05d1c40d9992aa1290dd488410 inherit pro_methods_classutl_1_1i2c__i"><td class="memSeparator" colspan="2">&#160;</td></tr>
  141. <tr class="memitem:adff01408628f58b7c6ce9b0cd63d70df inherit pro_methods_classutl_1_1i2c__i"><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 inherit pro_methods_classutl_1_1i2c__i"><td class="mdescLeft">&#160;</td><td class="mdescRight">No copies. <a href="classutl_1_1i2c__i.html#adff01408628f58b7c6ce9b0cd63d70df">More...</a><br /></td></tr>
  143. <tr class="separator:adff01408628f58b7c6ce9b0cd63d70df inherit pro_methods_classutl_1_1i2c__i"><td class="memSeparator" colspan="2">&#160;</td></tr>
  144. <tr class="memitem:a6a07d19db8974ad606031b60a6079957 inherit pro_methods_classutl_1_1i2c__i"><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>
  145. <tr class="memdesc:a6a07d19db8974ad606031b60a6079957 inherit pro_methods_classutl_1_1i2c__i"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow destructor from derived only. <a href="classutl_1_1i2c__i.html#a6a07d19db8974ad606031b60a6079957">More...</a><br /></td></tr>
  146. <tr class="separator:a6a07d19db8974ad606031b60a6079957 inherit pro_methods_classutl_1_1i2c__i"><td class="memSeparator" colspan="2">&#160;</td></tr>
  147. <tr class="memitem:aee83d11e02c3a0639dd3ed1ea440ed24 inherit pro_methods_classutl_1_1i2c__i"><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>
  148. <tr class="separator:aee83d11e02c3a0639dd3ed1ea440ed24 inherit pro_methods_classutl_1_1i2c__i"><td class="memSeparator" colspan="2">&#160;</td></tr>
  149. </table><table class="memberdecls">
  150. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
  151. Private Member Functions</h2></td></tr>
  152. <tr class="memitem:a5c9f28c59f87ebb8a937abb039e11150"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__bb__i.html#a5c9f28c59f87ebb8a937abb039e11150">_CRTP_IMPL</a> (impl_t)</td></tr>
  153. <tr class="separator:a5c9f28c59f87ebb8a937abb039e11150"><td class="memSeparator" colspan="2">&#160;</td></tr>
  154. <tr><td colspan="2"><div class="groupHeader">Implementation requirements</div></td></tr>
  155. <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>
  156. </div></td></tr>
  157. <tr class="memitem:aa197be76016b82fd6f8b66875430d922"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__bb__i.html#aa197be76016b82fd6f8b66875430d922">SDA</a> (<a class="el" href="classutl_1_1i2c__bb__i.html#a4369b434fde250d503bfdc07d5c6a26d">SDAMode</a> mode, bool st)</td></tr>
  158. <tr class="separator:aa197be76016b82fd6f8b66875430d922"><td class="memSeparator" colspan="2">&#160;</td></tr>
  159. <tr class="memitem:a0c9f7d9fc10ac2ceaef93cb6daf8a699"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__bb__i.html#a0c9f7d9fc10ac2ceaef93cb6daf8a699">SCL</a> (uint8_t st)</td></tr>
  160. <tr class="memdesc:a0c9f7d9fc10ac2ceaef93cb6daf8a699"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementers's scl pin function. <a href="#a0c9f7d9fc10ac2ceaef93cb6daf8a699">More...</a><br /></td></tr>
  161. <tr class="separator:a0c9f7d9fc10ac2ceaef93cb6daf8a699"><td class="memSeparator" colspan="2">&#160;</td></tr>
  162. <tr class="memitem:a18db1fab1be2aafbb2612242df2667f1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__bb__i.html#a18db1fab1be2aafbb2612242df2667f1">delay</a> (uint32_t usec)</td></tr>
  163. <tr class="separator:a18db1fab1be2aafbb2612242df2667f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  164. </table><table class="memberdecls">
  165. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
  166. Private Attributes</h2></td></tr>
  167. <tr class="memitem:a9932eded730c8f9a7b1d15988082b699"><td class="memItemLeft" align="right" valign="top">friend&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__bb__i.html#a9932eded730c8f9a7b1d15988082b699">i2c_i&lt; i2c_bb_i&lt; impl_t &gt; &gt;</a></td></tr>
  168. <tr class="separator:a9932eded730c8f9a7b1d15988082b699"><td class="memSeparator" colspan="2">&#160;</td></tr>
  169. </table><table class="memberdecls">
  170. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
  171. Implementation of base requirements</h2></td></tr>
  172. <tr class="memitem:a8bd3726104fc91eb8f283d7ffec71cee"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__bb__i.html#a8bd3726104fc91eb8f283d7ffec71cee">usec_</a></td></tr>
  173. <tr class="separator:a8bd3726104fc91eb8f283d7ffec71cee"><td class="memSeparator" colspan="2">&#160;</td></tr>
  174. <tr class="memitem:a1f491d6ccadce71fa6cc59eebc74e82f"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__bb__i.html#a1f491d6ccadce71fa6cc59eebc74e82f">_clock</a> () const</td></tr>
  175. <tr class="separator:a1f491d6ccadce71fa6cc59eebc74e82f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  176. <tr class="memitem:aef4db6e89447b2f0921df5b291b86232"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__bb__i.html#aef4db6e89447b2f0921df5b291b86232">_clock</a> (uint32_t c)</td></tr>
  177. <tr class="separator:aef4db6e89447b2f0921df5b291b86232"><td class="memSeparator" colspan="2">&#160;</td></tr>
  178. <tr class="memitem:a2f4df606609ef7465109990d9fc0f1da"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__bb__i.html#a2f4df606609ef7465109990d9fc0f1da">_start</a> ()</td></tr>
  179. <tr class="memdesc:a2f4df606609ef7465109990d9fc0f1da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send start functionality. <a href="#a2f4df606609ef7465109990d9fc0f1da">More...</a><br /></td></tr>
  180. <tr class="separator:a2f4df606609ef7465109990d9fc0f1da"><td class="memSeparator" colspan="2">&#160;</td></tr>
  181. <tr class="memitem:ade9235a9d8ccfd7233494631d66ba07e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__bb__i.html#ade9235a9d8ccfd7233494631d66ba07e">_stop</a> ()</td></tr>
  182. <tr class="memdesc:ade9235a9d8ccfd7233494631d66ba07e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send stop functionality. <a href="#ade9235a9d8ccfd7233494631d66ba07e">More...</a><br /></td></tr>
  183. <tr class="separator:ade9235a9d8ccfd7233494631d66ba07e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  184. <tr class="memitem:a3a459ded18fe55460ae438e312c22110"><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__bb__i.html#a3a459ded18fe55460ae438e312c22110">_rx_data</a> (bool ack, <a class="el" href="classutl_1_1i2c__bb__i.html#ad2872b7e17116f8379144488fe135052">Sequence</a> seq)</td></tr>
  185. <tr class="memdesc:a3a459ded18fe55460ae438e312c22110"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive a byte from the i2c bus. <a href="#a3a459ded18fe55460ae438e312c22110">More...</a><br /></td></tr>
  186. <tr class="separator:a3a459ded18fe55460ae438e312c22110"><td class="memSeparator" colspan="2">&#160;</td></tr>
  187. <tr class="memitem:a085e38e545049ac64cd745b08e0be18f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1i2c__bb__i.html#a085e38e545049ac64cd745b08e0be18f">_tx_data</a> (<a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> byte, <a class="el" href="classutl_1_1i2c__bb__i.html#ad2872b7e17116f8379144488fe135052">Sequence</a> seq)</td></tr>
  188. <tr class="memdesc:a085e38e545049ac64cd745b08e0be18f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmit a byte to the i2c bus. <a href="#a085e38e545049ac64cd745b08e0be18f">More...</a><br /></td></tr>
  189. <tr class="separator:a085e38e545049ac64cd745b08e0be18f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  190. </table><table class="memberdecls">
  191. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
  192. Additional Inherited Members</h2></td></tr>
  193. <tr class="inherit_header pub_methods_classutl_1_1i2c__i"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classutl_1_1i2c__i')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classutl_1_1i2c__i.html">utl::i2c_i&lt; i2c_bb_i&lt; impl_t &gt; &gt;</a></td></tr>
  194. <tr class="memitem:aac5fed816701cc4543acd717ec804ac0 inherit pub_methods_classutl_1_1i2c__i"><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>
  195. <tr class="separator:aac5fed816701cc4543acd717ec804ac0 inherit pub_methods_classutl_1_1i2c__i"><td class="memSeparator" colspan="2">&#160;</td></tr>
  196. <tr class="memitem:ae4c59938aeeb1f0726195d425a4c0083 inherit pub_methods_classutl_1_1i2c__i"><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>
  197. <tr class="memdesc:ae4c59938aeeb1f0726195d425a4c0083 inherit pub_methods_classutl_1_1i2c__i"><td class="mdescLeft">&#160;</td><td class="mdescRight">set clock frequency of the bus <a href="classutl_1_1i2c__i.html#ae4c59938aeeb1f0726195d425a4c0083">More...</a><br /></td></tr>
  198. <tr class="separator:ae4c59938aeeb1f0726195d425a4c0083 inherit pub_methods_classutl_1_1i2c__i"><td class="memSeparator" colspan="2">&#160;</td></tr>
  199. <tr class="memitem:a3591683e5fbf17b582f6ac1f79af871d inherit pub_methods_classutl_1_1i2c__i"><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>
  200. <tr class="memdesc:a3591683e5fbf17b582f6ac1f79af871d inherit pub_methods_classutl_1_1i2c__i"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send start functionality. <a href="classutl_1_1i2c__i.html#a3591683e5fbf17b582f6ac1f79af871d">More...</a><br /></td></tr>
  201. <tr class="separator:a3591683e5fbf17b582f6ac1f79af871d inherit pub_methods_classutl_1_1i2c__i"><td class="memSeparator" colspan="2">&#160;</td></tr>
  202. <tr class="memitem:a1310b52ac908b8c37059fb253cc3f56e inherit pub_methods_classutl_1_1i2c__i"><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>
  203. <tr class="memdesc:a1310b52ac908b8c37059fb253cc3f56e inherit pub_methods_classutl_1_1i2c__i"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send stop functionality. <a href="classutl_1_1i2c__i.html#a1310b52ac908b8c37059fb253cc3f56e">More...</a><br /></td></tr>
  204. <tr class="separator:a1310b52ac908b8c37059fb253cc3f56e inherit pub_methods_classutl_1_1i2c__i"><td class="memSeparator" colspan="2">&#160;</td></tr>
  205. <tr class="memitem:ab2f6a579096b4872f5dfd1530e200eda inherit pub_methods_classutl_1_1i2c__i"><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=Sequence::BYTEnACK)</td></tr>
  206. <tr class="memdesc:ab2f6a579096b4872f5dfd1530e200eda inherit pub_methods_classutl_1_1i2c__i"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive a byte from the i2c bus. <a href="classutl_1_1i2c__i.html#ab2f6a579096b4872f5dfd1530e200eda">More...</a><br /></td></tr>
  207. <tr class="separator:ab2f6a579096b4872f5dfd1530e200eda inherit pub_methods_classutl_1_1i2c__i"><td class="memSeparator" colspan="2">&#160;</td></tr>
  208. <tr class="memitem:aaf0b0ceec57fd8014ea3e6b58e9bfe3d inherit pub_methods_classutl_1_1i2c__i"><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=Sequence::BYTEnACK)</td></tr>
  209. <tr class="memdesc:aaf0b0ceec57fd8014ea3e6b58e9bfe3d inherit pub_methods_classutl_1_1i2c__i"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmit a byte to the i2c bus. <a href="classutl_1_1i2c__i.html#aaf0b0ceec57fd8014ea3e6b58e9bfe3d">More...</a><br /></td></tr>
  210. <tr class="separator:aaf0b0ceec57fd8014ea3e6b58e9bfe3d inherit pub_methods_classutl_1_1i2c__i"><td class="memSeparator" colspan="2">&#160;</td></tr>
  211. </table>
  212. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  213. <div class="textblock"><h3>template&lt;typename impl_t&gt;<br />
  214. class utl::i2c_bb_i&lt; impl_t &gt;</h3>
  215. <p>A bit banking implementation of i2c bus inherited from <a class="el" href="classutl_1_1i2c__i.html">i2c_i</a> base class. </p>
  216. <dl class="section see"><dt>See also</dt><dd><a class="el" href="classutl_1_1i2c__i.html" title="Abstract base class for i2c bus. ">i2c_i</a></dd></dl>
  217. <p>I2C bit banking interface template class providing an I2C using bit banking using CRTP. </p><dl class="params"><dt>Parameters</dt><dd>
  218. <table class="params">
  219. <tr><td class="paramname">impl_t</td><td>The CRTP type (the derived/implementation class typename). </td></tr>
  220. </table>
  221. </dd>
  222. </dl>
  223. <p class="definition">Definition at line <a class="el" href="i2c__bb_8h_source.html#l00047">47</a> of file <a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>.</p>
  224. </div><h2 class="groupheader">Member Typedef Documentation</h2>
  225. <a id="ad2872b7e17116f8379144488fe135052"></a>
  226. <h2 class="memtitle"><span class="permalink"><a href="#ad2872b7e17116f8379144488fe135052">&#9670;&nbsp;</a></span>Sequence</h2>
  227. <div class="memitem">
  228. <div class="memproto">
  229. <div class="memtemplate">
  230. template&lt;typename impl_t &gt; </div>
  231. <table class="memname">
  232. <tr>
  233. <td class="memname">using <a class="el" href="classutl_1_1i2c__bb__i.html">utl::i2c_bb_i</a>&lt; impl_t &gt;::<a class="el" href="classutl_1_1i2c__bb__i.html#ad2872b7e17116f8379144488fe135052">Sequence</a> = typename <a class="el" href="classutl_1_1i2c__i.html">i2c_i</a>&lt;<a class="el" href="classutl_1_1i2c__bb__i.html#a428c847d950993fa2cd005416edfb720">type</a>&gt;::<a class="el" href="classutl_1_1i2c__bb__i.html#ad2872b7e17116f8379144488fe135052">Sequence</a></td>
  234. </tr>
  235. </table>
  236. </div><div class="memdoc">
  237. <p class="definition">Definition at line <a class="el" href="i2c__bb_8h_source.html#l00053">53</a> of file <a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>.</p>
  238. </div>
  239. </div>
  240. <a id="a428c847d950993fa2cd005416edfb720"></a>
  241. <h2 class="memtitle"><span class="permalink"><a href="#a428c847d950993fa2cd005416edfb720">&#9670;&nbsp;</a></span>type</h2>
  242. <div class="memitem">
  243. <div class="memproto">
  244. <div class="memtemplate">
  245. template&lt;typename impl_t &gt; </div>
  246. <table class="memname">
  247. <tr>
  248. <td class="memname">using <a class="el" href="classutl_1_1i2c__bb__i.html">utl::i2c_bb_i</a>&lt; impl_t &gt;::<a class="el" href="classutl_1_1i2c__bb__i.html#a428c847d950993fa2cd005416edfb720">type</a> = <a class="el" href="classutl_1_1i2c__bb__i.html">i2c_bb_i</a>&lt;impl_t&gt;</td>
  249. </tr>
  250. </table>
  251. </div><div class="memdoc">
  252. <p>Export type as identity meta-function. </p>
  253. <p class="definition">Definition at line <a class="el" href="i2c__bb_8h_source.html#l00052">52</a> of file <a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>.</p>
  254. </div>
  255. </div>
  256. <h2 class="groupheader">Member Enumeration Documentation</h2>
  257. <a id="a4369b434fde250d503bfdc07d5c6a26d"></a>
  258. <h2 class="memtitle"><span class="permalink"><a href="#a4369b434fde250d503bfdc07d5c6a26d">&#9670;&nbsp;</a></span>SDAMode</h2>
  259. <div class="memitem">
  260. <div class="memproto">
  261. <div class="memtemplate">
  262. template&lt;typename impl_t &gt; </div>
  263. <table class="mlabels">
  264. <tr>
  265. <td class="mlabels-left">
  266. <table class="memname">
  267. <tr>
  268. <td class="memname">enum <a class="el" href="classutl_1_1i2c__bb__i.html#a4369b434fde250d503bfdc07d5c6a26d">utl::i2c_bb_i::SDAMode</a></td>
  269. </tr>
  270. </table>
  271. </td>
  272. <td class="mlabels-right">
  273. <span class="mlabels"><span class="mlabel">strong</span></span> </td>
  274. </tr>
  275. </table>
  276. </div><div class="memdoc">
  277. <p>SDA pin direction enumerator. </p>
  278. <table class="fieldtable">
  279. <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a4369b434fde250d503bfdc07d5c6a26daa84cc046d48610b05c21fd3670d0c829"></a>INPUT&#160;</td><td class="fielddoc"></td></tr>
  280. <tr><td class="fieldname"><a id="a4369b434fde250d503bfdc07d5c6a26da50a87f0d71f7221582dad4bf507a0f34"></a>OUTPUT&#160;</td><td class="fielddoc"></td></tr>
  281. </table>
  282. <p class="definition">Definition at line <a class="el" href="i2c__bb_8h_source.html#l00055">55</a> of file <a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>.</p>
  283. </div>
  284. </div>
  285. <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  286. <a id="ac2d9b97778a5dd57eb5e6425b4b0833c"></a>
  287. <h2 class="memtitle"><span class="permalink"><a href="#ac2d9b97778a5dd57eb5e6425b4b0833c">&#9670;&nbsp;</a></span>~i2c_bb_i()</h2>
  288. <div class="memitem">
  289. <div class="memproto">
  290. <div class="memtemplate">
  291. template&lt;typename impl_t &gt; </div>
  292. <table class="mlabels">
  293. <tr>
  294. <td class="mlabels-left">
  295. <table class="memname">
  296. <tr>
  297. <td class="memname"><a class="el" href="classutl_1_1i2c__bb__i.html">utl::i2c_bb_i</a>&lt; impl_t &gt;::~<a class="el" href="classutl_1_1i2c__bb__i.html">i2c_bb_i</a> </td>
  298. <td>(</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">default</span><span class="mlabel">noexcept</span></span> </td>
  306. </tr>
  307. </table>
  308. </div><div class="memdoc">
  309. <p>A default destructor, allow destructor from derived only. </p>
  310. </div>
  311. </div>
  312. <a id="ab657379ca2e4b3624e2d4520542a9464"></a>
  313. <h2 class="memtitle"><span class="permalink"><a href="#ab657379ca2e4b3624e2d4520542a9464">&#9670;&nbsp;</a></span>i2c_bb_i()</h2>
  314. <div class="memitem">
  315. <div class="memproto">
  316. <div class="memtemplate">
  317. template&lt;typename impl_t &gt; </div>
  318. <table class="mlabels">
  319. <tr>
  320. <td class="mlabels-left">
  321. <table class="memname">
  322. <tr>
  323. <td class="memname"><a class="el" href="classutl_1_1i2c__bb__i.html">utl::i2c_bb_i</a>&lt; impl_t &gt;::<a class="el" href="classutl_1_1i2c__bb__i.html">i2c_bb_i</a> </td>
  324. <td>(</td>
  325. <td class="paramtype">uint32_t&#160;</td>
  326. <td class="paramname"><em>clk</em></td><td>)</td>
  327. <td></td>
  328. </tr>
  329. </table>
  330. </td>
  331. <td class="mlabels-right">
  332. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">noexcept</span></span> </td>
  333. </tr>
  334. </table>
  335. </div><div class="memdoc">
  336. <p>A default constructor. </p>
  337. <p class="definition">Definition at line <a class="el" href="i2c__bb_8h_source.html#l00068">68</a> of file <a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>.</p>
  338. </div>
  339. </div>
  340. <h2 class="groupheader">Member Function Documentation</h2>
  341. <a id="a1f491d6ccadce71fa6cc59eebc74e82f"></a>
  342. <h2 class="memtitle"><span class="permalink"><a href="#a1f491d6ccadce71fa6cc59eebc74e82f">&#9670;&nbsp;</a></span>_clock() <span class="overload">[1/2]</span></h2>
  343. <div class="memitem">
  344. <div class="memproto">
  345. <div class="memtemplate">
  346. template&lt;typename impl_t &gt; </div>
  347. <table class="mlabels">
  348. <tr>
  349. <td class="mlabels-left">
  350. <table class="memname">
  351. <tr>
  352. <td class="memname">uint32_t <a class="el" href="classutl_1_1i2c__bb__i.html">utl::i2c_bb_i</a>&lt; impl_t &gt;::_clock </td>
  353. <td>(</td>
  354. <td class="paramname"></td><td>)</td>
  355. <td> const</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 class="definition">Definition at line <a class="el" href="i2c__bb_8h_source.html#l00095">95</a> of file <a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>.</p>
  365. </div>
  366. </div>
  367. <a id="aef4db6e89447b2f0921df5b291b86232"></a>
  368. <h2 class="memtitle"><span class="permalink"><a href="#aef4db6e89447b2f0921df5b291b86232">&#9670;&nbsp;</a></span>_clock() <span class="overload">[2/2]</span></h2>
  369. <div class="memitem">
  370. <div class="memproto">
  371. <div class="memtemplate">
  372. template&lt;typename impl_t &gt; </div>
  373. <table class="mlabels">
  374. <tr>
  375. <td class="mlabels-left">
  376. <table class="memname">
  377. <tr>
  378. <td class="memname">void <a class="el" href="classutl_1_1i2c__bb__i.html">utl::i2c_bb_i</a>&lt; impl_t &gt;::_clock </td>
  379. <td>(</td>
  380. <td class="paramtype">uint32_t&#160;</td>
  381. <td class="paramname"><em>c</em></td><td>)</td>
  382. <td></td>
  383. </tr>
  384. </table>
  385. </td>
  386. <td class="mlabels-right">
  387. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
  388. </tr>
  389. </table>
  390. </div><div class="memdoc">
  391. <p class="definition">Definition at line <a class="el" href="i2c__bb_8h_source.html#l00096">96</a> of file <a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>.</p>
  392. </div>
  393. </div>
  394. <a id="a5c9f28c59f87ebb8a937abb039e11150"></a>
  395. <h2 class="memtitle"><span class="permalink"><a href="#a5c9f28c59f87ebb8a937abb039e11150">&#9670;&nbsp;</a></span>_CRTP_IMPL()</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="classutl_1_1i2c__bb__i.html">utl::i2c_bb_i</a>&lt; impl_t &gt;::_CRTP_IMPL </td>
  406. <td>(</td>
  407. <td class="paramtype">impl_t&#160;</td>
  408. <td class="paramname"></td><td>)</td>
  409. <td></td>
  410. </tr>
  411. </table>
  412. </td>
  413. <td class="mlabels-right">
  414. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  415. </tr>
  416. </table>
  417. </div><div class="memdoc">
  418. </div>
  419. </div>
  420. <a id="a3a459ded18fe55460ae438e312c22110"></a>
  421. <h2 class="memtitle"><span class="permalink"><a href="#a3a459ded18fe55460ae438e312c22110">&#9670;&nbsp;</a></span>_rx_data()</h2>
  422. <div class="memitem">
  423. <div class="memproto">
  424. <div class="memtemplate">
  425. template&lt;typename impl_t &gt; </div>
  426. <table class="mlabels">
  427. <tr>
  428. <td class="mlabels-left">
  429. <table class="memname">
  430. <tr>
  431. <td class="memname"><a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> <a class="el" href="classutl_1_1i2c__bb__i.html">utl::i2c_bb_i</a>&lt; impl_t &gt;::_rx_data </td>
  432. <td>(</td>
  433. <td class="paramtype">bool&#160;</td>
  434. <td class="paramname"><em>ack</em>, </td>
  435. </tr>
  436. <tr>
  437. <td class="paramkey"></td>
  438. <td></td>
  439. <td class="paramtype"><a class="el" href="classutl_1_1i2c__bb__i.html#ad2872b7e17116f8379144488fe135052">Sequence</a>&#160;</td>
  440. <td class="paramname"><em>seq</em>&#160;</td>
  441. </tr>
  442. <tr>
  443. <td></td>
  444. <td>)</td>
  445. <td></td><td></td>
  446. </tr>
  447. </table>
  448. </td>
  449. <td class="mlabels-right">
  450. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  451. </tr>
  452. </table>
  453. </div><div class="memdoc">
  454. <p>Receive a byte from the i2c bus. </p>
  455. <dl class="params"><dt>Parameters</dt><dd>
  456. <table class="params">
  457. <tr><td class="paramname">ack</td><td>Optional ack bit. <ul>
  458. <li>1 ACK the reception </li>
  459. <li>0 Don't ACK the reception. </li>
  460. </ul>
  461. </td></tr>
  462. <tr><td class="paramname">seq</td><td>The operation sequence to execute <ul>
  463. <li>Sequence::BYTE Receive only the byte, do not send ack clock </li>
  464. <li>Sequence::ACK Send only the ack bit </li>
  465. <li>Sequence::BYTEnACK Receive the byte and send the ack bit </li>
  466. </ul>
  467. </td></tr>
  468. </table>
  469. </dd>
  470. </dl>
  471. <dl class="section return"><dt>Returns</dt><dd>The byte received. </dd></dl>
  472. <p class="definition">Definition at line <a class="el" href="i2c__bb_8h_source.html#l00154">154</a> of file <a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>.</p>
  473. </div>
  474. </div>
  475. <a id="a2f4df606609ef7465109990d9fc0f1da"></a>
  476. <h2 class="memtitle"><span class="permalink"><a href="#a2f4df606609ef7465109990d9fc0f1da">&#9670;&nbsp;</a></span>_start()</h2>
  477. <div class="memitem">
  478. <div class="memproto">
  479. <div class="memtemplate">
  480. template&lt;typename impl_t &gt; </div>
  481. <table class="mlabels">
  482. <tr>
  483. <td class="mlabels-left">
  484. <table class="memname">
  485. <tr>
  486. <td class="memname">void <a class="el" href="classutl_1_1i2c__bb__i.html">utl::i2c_bb_i</a>&lt; impl_t &gt;::_start </td>
  487. <td>(</td>
  488. <td class="paramtype">void&#160;</td>
  489. <td class="paramname"></td><td>)</td>
  490. <td></td>
  491. </tr>
  492. </table>
  493. </td>
  494. <td class="mlabels-right">
  495. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  496. </tr>
  497. </table>
  498. </div><div class="memdoc">
  499. <p>Send start functionality. </p>
  500. <p>Send a START bit to the bus.</p>
  501. <dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
  502. <p class="definition">Definition at line <a class="el" href="i2c__bb_8h_source.html#l00115">115</a> of file <a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>.</p>
  503. </div>
  504. </div>
  505. <a id="ade9235a9d8ccfd7233494631d66ba07e"></a>
  506. <h2 class="memtitle"><span class="permalink"><a href="#ade9235a9d8ccfd7233494631d66ba07e">&#9670;&nbsp;</a></span>_stop()</h2>
  507. <div class="memitem">
  508. <div class="memproto">
  509. <div class="memtemplate">
  510. template&lt;typename impl_t &gt; </div>
  511. <table class="mlabels">
  512. <tr>
  513. <td class="mlabels-left">
  514. <table class="memname">
  515. <tr>
  516. <td class="memname">void <a class="el" href="classutl_1_1i2c__bb__i.html">utl::i2c_bb_i</a>&lt; impl_t &gt;::_stop </td>
  517. <td>(</td>
  518. <td class="paramtype">void&#160;</td>
  519. <td class="paramname"></td><td>)</td>
  520. <td></td>
  521. </tr>
  522. </table>
  523. </td>
  524. <td class="mlabels-right">
  525. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  526. </tr>
  527. </table>
  528. </div><div class="memdoc">
  529. <p>Send stop functionality. </p>
  530. <p>Send a START bit to the bus.</p>
  531. <dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
  532. <p class="definition">Definition at line <a class="el" href="i2c__bb_8h_source.html#l00131">131</a> of file <a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>.</p>
  533. </div>
  534. </div>
  535. <a id="a085e38e545049ac64cd745b08e0be18f"></a>
  536. <h2 class="memtitle"><span class="permalink"><a href="#a085e38e545049ac64cd745b08e0be18f">&#9670;&nbsp;</a></span>_tx_data()</h2>
  537. <div class="memitem">
  538. <div class="memproto">
  539. <div class="memtemplate">
  540. template&lt;typename impl_t &gt; </div>
  541. <table class="mlabels">
  542. <tr>
  543. <td class="mlabels-left">
  544. <table class="memname">
  545. <tr>
  546. <td class="memname">bool <a class="el" href="classutl_1_1i2c__bb__i.html">utl::i2c_bb_i</a>&lt; impl_t &gt;::_tx_data </td>
  547. <td>(</td>
  548. <td class="paramtype"><a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a>&#160;</td>
  549. <td class="paramname"><em>byte</em>, </td>
  550. </tr>
  551. <tr>
  552. <td class="paramkey"></td>
  553. <td></td>
  554. <td class="paramtype"><a class="el" href="classutl_1_1i2c__bb__i.html#ad2872b7e17116f8379144488fe135052">Sequence</a>&#160;</td>
  555. <td class="paramname"><em>seq</em>&#160;</td>
  556. </tr>
  557. <tr>
  558. <td></td>
  559. <td>)</td>
  560. <td></td><td></td>
  561. </tr>
  562. </table>
  563. </td>
  564. <td class="mlabels-right">
  565. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  566. </tr>
  567. </table>
  568. </div><div class="memdoc">
  569. <p>Transmit a byte to the i2c bus. </p>
  570. <dl class="params"><dt>Parameters</dt><dd>
  571. <table class="params">
  572. <tr><td class="paramname">byte</td><td>The byte to send. </td></tr>
  573. <tr><td class="paramname">seq</td><td>The operation sequence to execute <ul>
  574. <li>Sequence::BYTE Transmit only the byte, do not read ack bit </li>
  575. <li>Sequence::ACK Read only the ack bit </li>
  576. <li>Sequence::BYTEnACK Transmit the byte and read the ack bit </li>
  577. </ul>
  578. </td></tr>
  579. </table>
  580. </dd>
  581. </dl>
  582. <dl class="section return"><dt>Returns</dt><dd>Slave's ACK bit <ul>
  583. <li>false Slave didn't ACK </li>
  584. <li>true Slave did ACK </li>
  585. </ul>
  586. </dd></dl>
  587. <p class="definition">Definition at line <a class="el" href="i2c__bb_8h_source.html#l00194">194</a> of file <a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>.</p>
  588. </div>
  589. </div>
  590. <a id="a18db1fab1be2aafbb2612242df2667f1"></a>
  591. <h2 class="memtitle"><span class="permalink"><a href="#a18db1fab1be2aafbb2612242df2667f1">&#9670;&nbsp;</a></span>delay()</h2>
  592. <div class="memitem">
  593. <div class="memproto">
  594. <div class="memtemplate">
  595. template&lt;typename impl_t &gt; </div>
  596. <table class="mlabels">
  597. <tr>
  598. <td class="mlabels-left">
  599. <table class="memname">
  600. <tr>
  601. <td class="memname">void <a class="el" href="classutl_1_1i2c__bb__i.html">utl::i2c_bb_i</a>&lt; impl_t &gt;::delay </td>
  602. <td>(</td>
  603. <td class="paramtype">uint32_t&#160;</td>
  604. <td class="paramname"><em>usec</em></td><td>)</td>
  605. <td></td>
  606. </tr>
  607. </table>
  608. </td>
  609. <td class="mlabels-right">
  610. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
  611. </tr>
  612. </table>
  613. </div><div class="memdoc">
  614. <p>Implementers's usec delay function </p>
  615. <p class="definition">Definition at line <a class="el" href="i2c__bb_8h_source.html#l00087">87</a> of file <a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>.</p>
  616. </div>
  617. </div>
  618. <a id="a0c9f7d9fc10ac2ceaef93cb6daf8a699"></a>
  619. <h2 class="memtitle"><span class="permalink"><a href="#a0c9f7d9fc10ac2ceaef93cb6daf8a699">&#9670;&nbsp;</a></span>SCL()</h2>
  620. <div class="memitem">
  621. <div class="memproto">
  622. <div class="memtemplate">
  623. template&lt;typename impl_t &gt; </div>
  624. <table class="mlabels">
  625. <tr>
  626. <td class="mlabels-left">
  627. <table class="memname">
  628. <tr>
  629. <td class="memname">void <a class="el" href="classutl_1_1i2c__bb__i.html">utl::i2c_bb_i</a>&lt; impl_t &gt;::SCL </td>
  630. <td>(</td>
  631. <td class="paramtype">uint8_t&#160;</td>
  632. <td class="paramname"><em>st</em></td><td>)</td>
  633. <td></td>
  634. </tr>
  635. </table>
  636. </td>
  637. <td class="mlabels-right">
  638. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
  639. </tr>
  640. </table>
  641. </div><div class="memdoc">
  642. <p>Implementers's scl pin function. </p>
  643. <p class="definition">Definition at line <a class="el" href="i2c__bb_8h_source.html#l00086">86</a> of file <a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>.</p>
  644. </div>
  645. </div>
  646. <a id="aa197be76016b82fd6f8b66875430d922"></a>
  647. <h2 class="memtitle"><span class="permalink"><a href="#aa197be76016b82fd6f8b66875430d922">&#9670;&nbsp;</a></span>SDA()</h2>
  648. <div class="memitem">
  649. <div class="memproto">
  650. <div class="memtemplate">
  651. template&lt;typename impl_t &gt; </div>
  652. <table class="mlabels">
  653. <tr>
  654. <td class="mlabels-left">
  655. <table class="memname">
  656. <tr>
  657. <td class="memname">bool <a class="el" href="classutl_1_1i2c__bb__i.html">utl::i2c_bb_i</a>&lt; impl_t &gt;::SDA </td>
  658. <td>(</td>
  659. <td class="paramtype"><a class="el" href="classutl_1_1i2c__bb__i.html#a4369b434fde250d503bfdc07d5c6a26d">SDAMode</a>&#160;</td>
  660. <td class="paramname"><em>mode</em>, </td>
  661. </tr>
  662. <tr>
  663. <td class="paramkey"></td>
  664. <td></td>
  665. <td class="paramtype">bool&#160;</td>
  666. <td class="paramname"><em>st</em>&#160;</td>
  667. </tr>
  668. <tr>
  669. <td></td>
  670. <td>)</td>
  671. <td></td><td></td>
  672. </tr>
  673. </table>
  674. </td>
  675. <td class="mlabels-right">
  676. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
  677. </tr>
  678. </table>
  679. </div><div class="memdoc">
  680. <p>Implementers's sda pin function </p><dl class="params"><dt>Parameters</dt><dd>
  681. <table class="params">
  682. <tr><td class="paramname">st</td><td>In SDA_OUTPUT mode, selects the pin output state </td></tr>
  683. </table>
  684. </dd>
  685. </dl>
  686. <dl class="section return"><dt>Returns</dt><dd>In SDA_INPUT mode return the pin input state </dd></dl>
  687. <p class="definition">Definition at line <a class="el" href="i2c__bb_8h_source.html#l00085">85</a> of file <a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>.</p>
  688. </div>
  689. </div>
  690. <h2 class="groupheader">Member Data Documentation</h2>
  691. <a id="a9932eded730c8f9a7b1d15988082b699"></a>
  692. <h2 class="memtitle"><span class="permalink"><a href="#a9932eded730c8f9a7b1d15988082b699">&#9670;&nbsp;</a></span>i2c_i&lt; i2c_bb_i&lt; impl_t &gt; &gt;</h2>
  693. <div class="memitem">
  694. <div class="memproto">
  695. <div class="memtemplate">
  696. template&lt;typename impl_t &gt; </div>
  697. <table class="mlabels">
  698. <tr>
  699. <td class="mlabels-left">
  700. <table class="memname">
  701. <tr>
  702. <td class="memname">friend <a class="el" href="classutl_1_1i2c__bb__i.html">utl::i2c_bb_i</a>&lt; impl_t &gt;::<a class="el" href="classutl_1_1i2c__i.html">i2c_i</a>&lt; <a class="el" href="classutl_1_1i2c__bb__i.html">i2c_bb_i</a>&lt; impl_t &gt; &gt;</td>
  703. </tr>
  704. </table>
  705. </td>
  706. <td class="mlabels-right">
  707. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  708. </tr>
  709. </table>
  710. </div><div class="memdoc">
  711. <p class="definition">Definition at line <a class="el" href="i2c__bb_8h_source.html#l00049">49</a> of file <a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>.</p>
  712. </div>
  713. </div>
  714. <a id="a8bd3726104fc91eb8f283d7ffec71cee"></a>
  715. <h2 class="memtitle"><span class="permalink"><a href="#a8bd3726104fc91eb8f283d7ffec71cee">&#9670;&nbsp;</a></span>usec_</h2>
  716. <div class="memitem">
  717. <div class="memproto">
  718. <div class="memtemplate">
  719. template&lt;typename impl_t &gt; </div>
  720. <table class="mlabels">
  721. <tr>
  722. <td class="mlabels-left">
  723. <table class="memname">
  724. <tr>
  725. <td class="memname">uint32_t <a class="el" href="classutl_1_1i2c__bb__i.html">utl::i2c_bb_i</a>&lt; impl_t &gt;::usec_</td>
  726. </tr>
  727. </table>
  728. </td>
  729. <td class="mlabels-right">
  730. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  731. </tr>
  732. </table>
  733. </div><div class="memdoc">
  734. <p>half period of I2C bus </p>
  735. <p class="definition">Definition at line <a class="el" href="i2c__bb_8h_source.html#l00102">102</a> of file <a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a>.</p>
  736. </div>
  737. </div>
  738. <hr/>The documentation for this class was generated from the following file:<ul>
  739. <li>include/utl/com/<a class="el" href="i2c__bb_8h_source.html">i2c_bb.h</a></li>
  740. </ul>
  741. </div><!-- contents -->
  742. </div><!-- doc-content -->
  743. <!-- start footer part -->
  744. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  745. <ul>
  746. <li class="navelem"><a class="el" href="namespaceutl.html">utl</a></li><li class="navelem"><a class="el" href="classutl_1_1i2c__bb__i.html">i2c_bb_i</a></li>
  747. <li class="footer">Generated by
  748. <a href="http://www.doxygen.org/index.html">
  749. <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
  750. </ul>
  751. </div>
  752. </body>
  753. </html>