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.
 
 
 
 

660 lines
33 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::spi_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_1spi__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_1spi__i-members.html">List of all members</a> </div>
  91. <div class="headertitle">
  92. <div class="title">utl::spi_i&lt; impl_t &gt; Class Template Reference</div> </div>
  93. </div><!--header-->
  94. <div class="contents">
  95. <p><code>#include &lt;<a class="el" href="spi_8h_source.html">spi.h</a>&gt;</code></p>
  96. <table class="memberdecls">
  97. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
  98. Public Types</h2></td></tr>
  99. <tr class="memitem:aff8ee0a2160cddbb52fce46611a6108f"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1spi__i.html#aff8ee0a2160cddbb52fce46611a6108f">type</a> = <a class="el" href="classutl_1_1spi__i.html">spi_i</a>&lt; impl_t &gt;</td></tr>
  100. <tr class="memdesc:aff8ee0a2160cddbb52fce46611a6108f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Export type as identity meta-function. <a href="#aff8ee0a2160cddbb52fce46611a6108f">More...</a><br /></td></tr>
  101. <tr class="separator:aff8ee0a2160cddbb52fce46611a6108f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  102. </table><table class="memberdecls">
  103. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  104. Public Member Functions</h2></td></tr>
  105. <tr><td colspan="2"><div class="groupHeader">Get/Set functions provided by the interface</div></td></tr>
  106. <tr class="memitem:a24cdd0c5ce4ed45a6c1b88ea43328634"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1spi__i.html#a24cdd0c5ce4ed45a6c1b88ea43328634">clock</a> () const</td></tr>
  107. <tr class="separator:a24cdd0c5ce4ed45a6c1b88ea43328634"><td class="memSeparator" colspan="2">&#160;</td></tr>
  108. <tr class="memitem:a0ebb46a523ace45fd69950f90f9b3af4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1spi__i.html#a0ebb46a523ace45fd69950f90f9b3af4">clock</a> (uint32_t c)</td></tr>
  109. <tr class="memdesc:a0ebb46a523ace45fd69950f90f9b3af4"><td class="mdescLeft">&#160;</td><td class="mdescRight">set clock frequency of the bus <a href="#a0ebb46a523ace45fd69950f90f9b3af4">More...</a><br /></td></tr>
  110. <tr class="separator:a0ebb46a523ace45fd69950f90f9b3af4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  111. <tr><td colspan="2"><div class="groupHeader">I/O functions provided by the interface</div></td></tr>
  112. <tr class="memitem:ac8376d88480a992ac47699637e1a29a5"><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_1spi__i.html#ac8376d88480a992ac47699637e1a29a5">tx_data</a> (<a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> out)</td></tr>
  113. <tr class="separator:ac8376d88480a992ac47699637e1a29a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  114. <tr class="memitem:af3e303c2982202261700044d31596248"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1spi__i.html#af3e303c2982202261700044d31596248">tx_data</a> (const <a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> *out, <a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> *in, <a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a> n)</td></tr>
  115. <tr class="memdesc:af3e303c2982202261700044d31596248"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmit a number of bytes to the spi bus and read the response. <a href="#af3e303c2982202261700044d31596248">More...</a><br /></td></tr>
  116. <tr class="separator:af3e303c2982202261700044d31596248"><td class="memSeparator" colspan="2">&#160;</td></tr>
  117. <tr class="memitem:a846dead32b91efcb48eed614daf68e8f"><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_1spi__i.html#a846dead32b91efcb48eed614daf68e8f">rx_data</a> ()</td></tr>
  118. <tr class="separator:a846dead32b91efcb48eed614daf68e8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  119. <tr class="memitem:a2053009da5364ead720aebd7cc537c21"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1spi__i.html#a2053009da5364ead720aebd7cc537c21">rx_data</a> (<a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> *in, <a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a> n)</td></tr>
  120. <tr class="memdesc:a2053009da5364ead720aebd7cc537c21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive a number of bytes from the spi bus while transmitting 0xFFs. <a href="#a2053009da5364ead720aebd7cc537c21">More...</a><br /></td></tr>
  121. <tr class="separator:a2053009da5364ead720aebd7cc537c21"><td class="memSeparator" colspan="2">&#160;</td></tr>
  122. </table><table class="memberdecls">
  123. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
  124. Protected Member Functions</h2></td></tr>
  125. <tr><td colspan="2"><div class="groupHeader">Object lifetime</div></td></tr>
  126. <tr class="memitem:ad66605cdf90f6d24cad3dc5ecda94b77"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1spi__i.html#ad66605cdf90f6d24cad3dc5ecda94b77">spi_i</a> ()=default</td></tr>
  127. <tr class="memdesc:ad66605cdf90f6d24cad3dc5ecda94b77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow constructor from derived only. <a href="#ad66605cdf90f6d24cad3dc5ecda94b77">More...</a><br /></td></tr>
  128. <tr class="separator:ad66605cdf90f6d24cad3dc5ecda94b77"><td class="memSeparator" colspan="2">&#160;</td></tr>
  129. <tr class="memitem:ae77cb8be7d648a62a1ad252d829eccfb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1spi__i.html#ae77cb8be7d648a62a1ad252d829eccfb">~spi_i</a> ()=default</td></tr>
  130. <tr class="memdesc:ae77cb8be7d648a62a1ad252d829eccfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow destructor from derived only. <a href="#ae77cb8be7d648a62a1ad252d829eccfb">More...</a><br /></td></tr>
  131. <tr class="separator:ae77cb8be7d648a62a1ad252d829eccfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  132. <tr class="memitem:a1d6facb9b9adf91a6589fe029325bd55"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1spi__i.html#a1d6facb9b9adf91a6589fe029325bd55">spi_i</a> (const <a class="el" href="classutl_1_1spi__i.html#aff8ee0a2160cddbb52fce46611a6108f">type</a> &amp;)=delete</td></tr>
  133. <tr class="memdesc:a1d6facb9b9adf91a6589fe029325bd55"><td class="mdescLeft">&#160;</td><td class="mdescRight">No copies. <a href="#a1d6facb9b9adf91a6589fe029325bd55">More...</a><br /></td></tr>
  134. <tr class="separator:a1d6facb9b9adf91a6589fe029325bd55"><td class="memSeparator" colspan="2">&#160;</td></tr>
  135. <tr class="memitem:aa5cf05ce005cb23e6317b3eef70bf4b0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classutl_1_1spi__i.html#aff8ee0a2160cddbb52fce46611a6108f">type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1spi__i.html#aa5cf05ce005cb23e6317b3eef70bf4b0">operator=</a> (const <a class="el" href="classutl_1_1spi__i.html#aff8ee0a2160cddbb52fce46611a6108f">type</a> &amp;)=delete</td></tr>
  136. <tr class="separator:aa5cf05ce005cb23e6317b3eef70bf4b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  137. </table><table class="memberdecls">
  138. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
  139. Private Member Functions</h2></td></tr>
  140. <tr class="memitem:adfab771b0e399b9f482e42aaa5e9db11"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1spi__i.html#adfab771b0e399b9f482e42aaa5e9db11">_CRTP_IMPL</a> (impl_t)</td></tr>
  141. <tr class="separator:adfab771b0e399b9f482e42aaa5e9db11"><td class="memSeparator" colspan="2">&#160;</td></tr>
  142. <tr><td colspan="2"><div class="groupHeader">Implementation requirements</div></td></tr>
  143. <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>
  144. </div></td></tr>
  145. <tr class="memitem:a68a21ac9727eed3802ce7d1181ac4f8c"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1spi__i.html#a68a21ac9727eed3802ce7d1181ac4f8c">_clock</a> () const</td></tr>
  146. <tr class="memdesc:a68a21ac9727eed3802ce7d1181ac4f8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">clock frequency of the bus [Hz] <a href="#a68a21ac9727eed3802ce7d1181ac4f8c">More...</a><br /></td></tr>
  147. <tr class="separator:a68a21ac9727eed3802ce7d1181ac4f8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  148. <tr class="memitem:af0a9bfc5d02ccd2bfbe8044132884578"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1spi__i.html#af0a9bfc5d02ccd2bfbe8044132884578">_clock</a> (uint32_t c)</td></tr>
  149. <tr class="memdesc:af0a9bfc5d02ccd2bfbe8044132884578"><td class="mdescLeft">&#160;</td><td class="mdescRight">set clock frequency of the bus [Hz] <a href="#af0a9bfc5d02ccd2bfbe8044132884578">More...</a><br /></td></tr>
  150. <tr class="separator:af0a9bfc5d02ccd2bfbe8044132884578"><td class="memSeparator" colspan="2">&#160;</td></tr>
  151. <tr class="memitem:acf3ffd9c79d4cdeac100cf3273120689"><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_1spi__i.html#acf3ffd9c79d4cdeac100cf3273120689">_tx_data</a> (<a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> b)</td></tr>
  152. <tr class="separator:acf3ffd9c79d4cdeac100cf3273120689"><td class="memSeparator" colspan="2">&#160;</td></tr>
  153. </table>
  154. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  155. <div class="textblock"><h3>template&lt;typename impl_t&gt;<br />
  156. class utl::spi_i&lt; impl_t &gt;</h3>
  157. <p>Template base class for SPI communication interface using CRTP This class force a common interface for SPI communication protocol implementations. </p><dl class="params"><dt>Parameters</dt><dd>
  158. <table class="params">
  159. <tr><td class="paramname">impl_t</td><td>The CRTP type (the derived/implementation class typename). </td></tr>
  160. </table>
  161. </dd>
  162. </dl>
  163. <p class="definition">Definition at line <a class="el" href="spi_8h_source.html#l00067">67</a> of file <a class="el" href="spi_8h_source.html">spi.h</a>.</p>
  164. </div><h2 class="groupheader">Member Typedef Documentation</h2>
  165. <a id="aff8ee0a2160cddbb52fce46611a6108f"></a>
  166. <h2 class="memtitle"><span class="permalink"><a href="#aff8ee0a2160cddbb52fce46611a6108f">&#9670;&nbsp;</a></span>type</h2>
  167. <div class="memitem">
  168. <div class="memproto">
  169. <div class="memtemplate">
  170. template&lt;typename impl_t&gt; </div>
  171. <table class="memname">
  172. <tr>
  173. <td class="memname">using <a class="el" href="classutl_1_1spi__i.html">utl::spi_i</a>&lt; impl_t &gt;::<a class="el" href="classutl_1_1spi__i.html#aff8ee0a2160cddbb52fce46611a6108f">type</a> = <a class="el" href="classutl_1_1spi__i.html">spi_i</a>&lt;impl_t&gt;</td>
  174. </tr>
  175. </table>
  176. </div><div class="memdoc">
  177. <p>Export type as identity meta-function. </p>
  178. <p class="definition">Definition at line <a class="el" href="spi_8h_source.html#l00071">71</a> of file <a class="el" href="spi_8h_source.html">spi.h</a>.</p>
  179. </div>
  180. </div>
  181. <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  182. <a id="ad66605cdf90f6d24cad3dc5ecda94b77"></a>
  183. <h2 class="memtitle"><span class="permalink"><a href="#ad66605cdf90f6d24cad3dc5ecda94b77">&#9670;&nbsp;</a></span>spi_i() <span class="overload">[1/2]</span></h2>
  184. <div class="memitem">
  185. <div class="memproto">
  186. <div class="memtemplate">
  187. template&lt;typename impl_t&gt; </div>
  188. <table class="mlabels">
  189. <tr>
  190. <td class="mlabels-left">
  191. <table class="memname">
  192. <tr>
  193. <td class="memname"><a class="el" href="classutl_1_1spi__i.html">utl::spi_i</a>&lt; impl_t &gt;::<a class="el" href="classutl_1_1spi__i.html">spi_i</a> </td>
  194. <td>(</td>
  195. <td class="paramname"></td><td>)</td>
  196. <td></td>
  197. </tr>
  198. </table>
  199. </td>
  200. <td class="mlabels-right">
  201. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">default</span></span> </td>
  202. </tr>
  203. </table>
  204. </div><div class="memdoc">
  205. <p>Allow constructor from derived only. </p>
  206. </div>
  207. </div>
  208. <a id="ae77cb8be7d648a62a1ad252d829eccfb"></a>
  209. <h2 class="memtitle"><span class="permalink"><a href="#ae77cb8be7d648a62a1ad252d829eccfb">&#9670;&nbsp;</a></span>~spi_i()</h2>
  210. <div class="memitem">
  211. <div class="memproto">
  212. <div class="memtemplate">
  213. template&lt;typename impl_t&gt; </div>
  214. <table class="mlabels">
  215. <tr>
  216. <td class="mlabels-left">
  217. <table class="memname">
  218. <tr>
  219. <td class="memname"><a class="el" href="classutl_1_1spi__i.html">utl::spi_i</a>&lt; impl_t &gt;::~<a class="el" href="classutl_1_1spi__i.html">spi_i</a> </td>
  220. <td>(</td>
  221. <td class="paramname"></td><td>)</td>
  222. <td></td>
  223. </tr>
  224. </table>
  225. </td>
  226. <td class="mlabels-right">
  227. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">default</span></span> </td>
  228. </tr>
  229. </table>
  230. </div><div class="memdoc">
  231. <p>Allow destructor from derived only. </p>
  232. </div>
  233. </div>
  234. <a id="a1d6facb9b9adf91a6589fe029325bd55"></a>
  235. <h2 class="memtitle"><span class="permalink"><a href="#a1d6facb9b9adf91a6589fe029325bd55">&#9670;&nbsp;</a></span>spi_i() <span class="overload">[2/2]</span></h2>
  236. <div class="memitem">
  237. <div class="memproto">
  238. <div class="memtemplate">
  239. template&lt;typename impl_t&gt; </div>
  240. <table class="mlabels">
  241. <tr>
  242. <td class="mlabels-left">
  243. <table class="memname">
  244. <tr>
  245. <td class="memname"><a class="el" href="classutl_1_1spi__i.html">utl::spi_i</a>&lt; impl_t &gt;::<a class="el" href="classutl_1_1spi__i.html">spi_i</a> </td>
  246. <td>(</td>
  247. <td class="paramtype">const <a class="el" href="classutl_1_1spi__i.html#aff8ee0a2160cddbb52fce46611a6108f">type</a> &amp;&#160;</td>
  248. <td class="paramname"></td><td>)</td>
  249. <td></td>
  250. </tr>
  251. </table>
  252. </td>
  253. <td class="mlabels-right">
  254. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">delete</span></span> </td>
  255. </tr>
  256. </table>
  257. </div><div class="memdoc">
  258. <p>No copies. </p>
  259. </div>
  260. </div>
  261. <h2 class="groupheader">Member Function Documentation</h2>
  262. <a id="a68a21ac9727eed3802ce7d1181ac4f8c"></a>
  263. <h2 class="memtitle"><span class="permalink"><a href="#a68a21ac9727eed3802ce7d1181ac4f8c">&#9670;&nbsp;</a></span>_clock() <span class="overload">[1/2]</span></h2>
  264. <div class="memitem">
  265. <div class="memproto">
  266. <div class="memtemplate">
  267. template&lt;typename impl_t&gt; </div>
  268. <table class="mlabels">
  269. <tr>
  270. <td class="mlabels-left">
  271. <table class="memname">
  272. <tr>
  273. <td class="memname">uint32_t <a class="el" href="classutl_1_1spi__i.html">utl::spi_i</a>&lt; impl_t &gt;::_clock </td>
  274. <td>(</td>
  275. <td class="paramname"></td><td>)</td>
  276. <td> const</td>
  277. </tr>
  278. </table>
  279. </td>
  280. <td class="mlabels-right">
  281. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
  282. </tr>
  283. </table>
  284. </div><div class="memdoc">
  285. <p>clock frequency of the bus [Hz] </p>
  286. <p class="definition">Definition at line <a class="el" href="spi_8h_source.html#l00092">92</a> of file <a class="el" href="spi_8h_source.html">spi.h</a>.</p>
  287. </div>
  288. </div>
  289. <a id="af0a9bfc5d02ccd2bfbe8044132884578"></a>
  290. <h2 class="memtitle"><span class="permalink"><a href="#af0a9bfc5d02ccd2bfbe8044132884578">&#9670;&nbsp;</a></span>_clock() <span class="overload">[2/2]</span></h2>
  291. <div class="memitem">
  292. <div class="memproto">
  293. <div class="memtemplate">
  294. template&lt;typename impl_t&gt; </div>
  295. <table class="mlabels">
  296. <tr>
  297. <td class="mlabels-left">
  298. <table class="memname">
  299. <tr>
  300. <td class="memname">void <a class="el" href="classutl_1_1spi__i.html">utl::spi_i</a>&lt; impl_t &gt;::_clock </td>
  301. <td>(</td>
  302. <td class="paramtype">uint32_t&#160;</td>
  303. <td class="paramname"><em>c</em></td><td>)</td>
  304. <td></td>
  305. </tr>
  306. </table>
  307. </td>
  308. <td class="mlabels-right">
  309. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
  310. </tr>
  311. </table>
  312. </div><div class="memdoc">
  313. <p>set clock frequency of the bus [Hz] </p>
  314. <p class="definition">Definition at line <a class="el" href="spi_8h_source.html#l00093">93</a> of file <a class="el" href="spi_8h_source.html">spi.h</a>.</p>
  315. </div>
  316. </div>
  317. <a id="adfab771b0e399b9f482e42aaa5e9db11"></a>
  318. <h2 class="memtitle"><span class="permalink"><a href="#adfab771b0e399b9f482e42aaa5e9db11">&#9670;&nbsp;</a></span>_CRTP_IMPL()</h2>
  319. <div class="memitem">
  320. <div class="memproto">
  321. <div class="memtemplate">
  322. template&lt;typename impl_t&gt; </div>
  323. <table class="mlabels">
  324. <tr>
  325. <td class="mlabels-left">
  326. <table class="memname">
  327. <tr>
  328. <td class="memname"><a class="el" href="classutl_1_1spi__i.html">utl::spi_i</a>&lt; impl_t &gt;::_CRTP_IMPL </td>
  329. <td>(</td>
  330. <td class="paramtype">impl_t&#160;</td>
  331. <td class="paramname"></td><td>)</td>
  332. <td></td>
  333. </tr>
  334. </table>
  335. </td>
  336. <td class="mlabels-right">
  337. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  338. </tr>
  339. </table>
  340. </div><div class="memdoc">
  341. </div>
  342. </div>
  343. <a id="acf3ffd9c79d4cdeac100cf3273120689"></a>
  344. <h2 class="memtitle"><span class="permalink"><a href="#acf3ffd9c79d4cdeac100cf3273120689">&#9670;&nbsp;</a></span>_tx_data()</h2>
  345. <div class="memitem">
  346. <div class="memproto">
  347. <div class="memtemplate">
  348. template&lt;typename impl_t&gt; </div>
  349. <table class="mlabels">
  350. <tr>
  351. <td class="mlabels-left">
  352. <table class="memname">
  353. <tr>
  354. <td class="memname"><a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> <a class="el" href="classutl_1_1spi__i.html">utl::spi_i</a>&lt; impl_t &gt;::_tx_data </td>
  355. <td>(</td>
  356. <td class="paramtype"><a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a>&#160;</td>
  357. <td class="paramname"><em>b</em></td><td>)</td>
  358. <td></td>
  359. </tr>
  360. </table>
  361. </td>
  362. <td class="mlabels-right">
  363. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
  364. </tr>
  365. </table>
  366. </div><div class="memdoc">
  367. <p>Transmit a byte on the bus and return the response </p>
  368. <p class="definition">Definition at line <a class="el" href="spi_8h_source.html#l00094">94</a> of file <a class="el" href="spi_8h_source.html">spi.h</a>.</p>
  369. </div>
  370. </div>
  371. <a id="a24cdd0c5ce4ed45a6c1b88ea43328634"></a>
  372. <h2 class="memtitle"><span class="permalink"><a href="#a24cdd0c5ce4ed45a6c1b88ea43328634">&#9670;&nbsp;</a></span>clock() <span class="overload">[1/2]</span></h2>
  373. <div class="memitem">
  374. <div class="memproto">
  375. <div class="memtemplate">
  376. template&lt;typename impl_t&gt; </div>
  377. <table class="mlabels">
  378. <tr>
  379. <td class="mlabels-left">
  380. <table class="memname">
  381. <tr>
  382. <td class="memname">uint32_t <a class="el" href="classutl_1_1spi__i.html">utl::spi_i</a>&lt; impl_t &gt;::clock </td>
  383. <td>(</td>
  384. <td class="paramname"></td><td>)</td>
  385. <td> const</td>
  386. </tr>
  387. </table>
  388. </td>
  389. <td class="mlabels-right">
  390. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  391. </tr>
  392. </table>
  393. </div><div class="memdoc">
  394. <dl class="section return"><dt>Returns</dt><dd>clock frequency of the bus </dd></dl>
  395. <p class="definition">Definition at line <a class="el" href="spi_8h_source.html#l00102">102</a> of file <a class="el" href="spi_8h_source.html">spi.h</a>.</p>
  396. </div>
  397. </div>
  398. <a id="a0ebb46a523ace45fd69950f90f9b3af4"></a>
  399. <h2 class="memtitle"><span class="permalink"><a href="#a0ebb46a523ace45fd69950f90f9b3af4">&#9670;&nbsp;</a></span>clock() <span class="overload">[2/2]</span></h2>
  400. <div class="memitem">
  401. <div class="memproto">
  402. <div class="memtemplate">
  403. template&lt;typename impl_t&gt; </div>
  404. <table class="mlabels">
  405. <tr>
  406. <td class="mlabels-left">
  407. <table class="memname">
  408. <tr>
  409. <td class="memname">void <a class="el" href="classutl_1_1spi__i.html">utl::spi_i</a>&lt; impl_t &gt;::clock </td>
  410. <td>(</td>
  411. <td class="paramtype">uint32_t&#160;</td>
  412. <td class="paramname"><em>c</em></td><td>)</td>
  413. <td></td>
  414. </tr>
  415. </table>
  416. </td>
  417. <td class="mlabels-right">
  418. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  419. </tr>
  420. </table>
  421. </div><div class="memdoc">
  422. <p>set clock frequency of the bus </p>
  423. <p class="definition">Definition at line <a class="el" href="spi_8h_source.html#l00103">103</a> of file <a class="el" href="spi_8h_source.html">spi.h</a>.</p>
  424. </div>
  425. </div>
  426. <a id="aa5cf05ce005cb23e6317b3eef70bf4b0"></a>
  427. <h2 class="memtitle"><span class="permalink"><a href="#aa5cf05ce005cb23e6317b3eef70bf4b0">&#9670;&nbsp;</a></span>operator=()</h2>
  428. <div class="memitem">
  429. <div class="memproto">
  430. <div class="memtemplate">
  431. template&lt;typename impl_t&gt; </div>
  432. <table class="mlabels">
  433. <tr>
  434. <td class="mlabels-left">
  435. <table class="memname">
  436. <tr>
  437. <td class="memname"><a class="el" href="classutl_1_1spi__i.html#aff8ee0a2160cddbb52fce46611a6108f">type</a>&amp; <a class="el" href="classutl_1_1spi__i.html">utl::spi_i</a>&lt; impl_t &gt;::operator= </td>
  438. <td>(</td>
  439. <td class="paramtype">const <a class="el" href="classutl_1_1spi__i.html#aff8ee0a2160cddbb52fce46611a6108f">type</a> &amp;&#160;</td>
  440. <td class="paramname"></td><td>)</td>
  441. <td></td>
  442. </tr>
  443. </table>
  444. </td>
  445. <td class="mlabels-right">
  446. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">delete</span></span> </td>
  447. </tr>
  448. </table>
  449. </div><div class="memdoc">
  450. </div>
  451. </div>
  452. <a id="a846dead32b91efcb48eed614daf68e8f"></a>
  453. <h2 class="memtitle"><span class="permalink"><a href="#a846dead32b91efcb48eed614daf68e8f">&#9670;&nbsp;</a></span>rx_data() <span class="overload">[1/2]</span></h2>
  454. <div class="memitem">
  455. <div class="memproto">
  456. <div class="memtemplate">
  457. template&lt;typename impl_t&gt; </div>
  458. <table class="mlabels">
  459. <tr>
  460. <td class="mlabels-left">
  461. <table class="memname">
  462. <tr>
  463. <td class="memname"><a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> <a class="el" href="classutl_1_1spi__i.html">utl::spi_i</a>&lt; impl_t &gt;::rx_data </td>
  464. <td>(</td>
  465. <td class="paramname"></td><td>)</td>
  466. <td></td>
  467. </tr>
  468. </table>
  469. </td>
  470. <td class="mlabels-right">
  471. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  472. </tr>
  473. </table>
  474. </div><div class="memdoc">
  475. <p>Receive a byte from spi bus while transmitting 0xFF </p>
  476. <p class="definition">Definition at line <a class="el" href="spi_8h_source.html#l00129">129</a> of file <a class="el" href="spi_8h_source.html">spi.h</a>.</p>
  477. </div>
  478. </div>
  479. <a id="a2053009da5364ead720aebd7cc537c21"></a>
  480. <h2 class="memtitle"><span class="permalink"><a href="#a2053009da5364ead720aebd7cc537c21">&#9670;&nbsp;</a></span>rx_data() <span class="overload">[2/2]</span></h2>
  481. <div class="memitem">
  482. <div class="memproto">
  483. <div class="memtemplate">
  484. template&lt;typename _I &gt; </div>
  485. <table class="memname">
  486. <tr>
  487. <td class="memname"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a> <a class="el" href="classutl_1_1spi__i.html">utl::spi_i</a>&lt; _I &gt;::rx_data </td>
  488. <td>(</td>
  489. <td class="paramtype"><a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> *&#160;</td>
  490. <td class="paramname"><em>in</em>, </td>
  491. </tr>
  492. <tr>
  493. <td class="paramkey"></td>
  494. <td></td>
  495. <td class="paramtype"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a>&#160;</td>
  496. <td class="paramname"><em>n</em>&#160;</td>
  497. </tr>
  498. <tr>
  499. <td></td>
  500. <td>)</td>
  501. <td></td><td></td>
  502. </tr>
  503. </table>
  504. </div><div class="memdoc">
  505. <p>Receive a number of bytes from the spi bus while transmitting 0xFFs. </p>
  506. <dl class="params"><dt>Parameters</dt><dd>
  507. <table class="params">
  508. <tr><td class="paramname">in</td><td>Pointer to buffer to store the data </td></tr>
  509. <tr><td class="paramname">n</td><td>The number of bytes to read </td></tr>
  510. </table>
  511. </dd>
  512. </dl>
  513. <dl class="section return"><dt>Returns</dt><dd>The number of received bytes. </dd></dl>
  514. <p class="definition">Definition at line <a class="el" href="spi_8h_source.html#l00165">165</a> of file <a class="el" href="spi_8h_source.html">spi.h</a>.</p>
  515. </div>
  516. </div>
  517. <a id="ac8376d88480a992ac47699637e1a29a5"></a>
  518. <h2 class="memtitle"><span class="permalink"><a href="#ac8376d88480a992ac47699637e1a29a5">&#9670;&nbsp;</a></span>tx_data() <span class="overload">[1/2]</span></h2>
  519. <div class="memitem">
  520. <div class="memproto">
  521. <div class="memtemplate">
  522. template&lt;typename impl_t&gt; </div>
  523. <table class="mlabels">
  524. <tr>
  525. <td class="mlabels-left">
  526. <table class="memname">
  527. <tr>
  528. <td class="memname"><a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> <a class="el" href="classutl_1_1spi__i.html">utl::spi_i</a>&lt; impl_t &gt;::tx_data </td>
  529. <td>(</td>
  530. <td class="paramtype"><a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a>&#160;</td>
  531. <td class="paramname"><em>out</em></td><td>)</td>
  532. <td></td>
  533. </tr>
  534. </table>
  535. </td>
  536. <td class="mlabels-right">
  537. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  538. </tr>
  539. </table>
  540. </div><div class="memdoc">
  541. <p>Transmit a byte to spi bus and return the response </p>
  542. <p class="definition">Definition at line <a class="el" href="spi_8h_source.html#l00114">114</a> of file <a class="el" href="spi_8h_source.html">spi.h</a>.</p>
  543. </div>
  544. </div>
  545. <a id="af3e303c2982202261700044d31596248"></a>
  546. <h2 class="memtitle"><span class="permalink"><a href="#af3e303c2982202261700044d31596248">&#9670;&nbsp;</a></span>tx_data() <span class="overload">[2/2]</span></h2>
  547. <div class="memitem">
  548. <div class="memproto">
  549. <div class="memtemplate">
  550. template&lt;typename _I &gt; </div>
  551. <table class="memname">
  552. <tr>
  553. <td class="memname"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a> <a class="el" href="classutl_1_1spi__i.html">utl::spi_i</a>&lt; _I &gt;::tx_data </td>
  554. <td>(</td>
  555. <td class="paramtype">const <a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> *&#160;</td>
  556. <td class="paramname"><em>out</em>, </td>
  557. </tr>
  558. <tr>
  559. <td class="paramkey"></td>
  560. <td></td>
  561. <td class="paramtype"><a class="el" href="namespaceutl.html#a1427cb5a2b13313147a902173b91e3c1">byte_t</a> *&#160;</td>
  562. <td class="paramname"><em>in</em>, </td>
  563. </tr>
  564. <tr>
  565. <td class="paramkey"></td>
  566. <td></td>
  567. <td class="paramtype"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a>&#160;</td>
  568. <td class="paramname"><em>n</em>&#160;</td>
  569. </tr>
  570. <tr>
  571. <td></td>
  572. <td>)</td>
  573. <td></td><td></td>
  574. </tr>
  575. </table>
  576. </div><div class="memdoc">
  577. <p>Transmit a number of bytes to the spi bus and read the response. </p>
  578. <dl class="params"><dt>Parameters</dt><dd>
  579. <table class="params">
  580. <tr><td class="paramname">out</td><td>Pointer to data to send to the bus </td></tr>
  581. <tr><td class="paramname">in</td><td>Pointer to buffer to store the data from the bus </td></tr>
  582. <tr><td class="paramname">n</td><td>The number of bytes to transmit/receive </td></tr>
  583. </table>
  584. </dd>
  585. </dl>
  586. <dl class="section return"><dt>Returns</dt><dd>The number of bytes. </dd></dl>
  587. <p class="definition">Definition at line <a class="el" href="spi_8h_source.html#l00152">152</a> of file <a class="el" href="spi_8h_source.html">spi.h</a>.</p>
  588. </div>
  589. </div>
  590. <hr/>The documentation for this class was generated from the following file:<ul>
  591. <li>include/utl/com/<a class="el" href="spi_8h_source.html">spi.h</a></li>
  592. </ul>
  593. </div><!-- contents -->
  594. </div><!-- doc-content -->
  595. <!-- start footer part -->
  596. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  597. <ul>
  598. <li class="navelem"><a class="el" href="namespaceutl.html">utl</a></li><li class="navelem"><a class="el" href="classutl_1_1spi__i.html">spi_i</a></li>
  599. <li class="footer">Generated by
  600. <a href="http://www.doxygen.org/index.html">
  601. <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
  602. </ul>
  603. </div>
  604. </body>
  605. </html>