Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
10 роки тому
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621
  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.10"/>
  7. <title>SdFat: Fast Pin I/O</title>
  8. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  9. <script type="text/javascript" src="jquery.js"></script>
  10. <script type="text/javascript" src="dynsections.js"></script>
  11. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  12. <script type="text/javascript" src="search/searchdata.js"></script>
  13. <script type="text/javascript" src="search/search.js"></script>
  14. <script type="text/javascript">
  15. $(document).ready(function() { init_search(); });
  16. </script>
  17. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  18. </head>
  19. <body>
  20. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  21. <div id="titlearea">
  22. <table cellspacing="0" cellpadding="0">
  23. <tbody>
  24. <tr style="height: 56px;">
  25. <td id="projectalign" style="padding-left: 0.5em;">
  26. <div id="projectname">SdFat
  27. </div>
  28. </td>
  29. </tr>
  30. </tbody>
  31. </table>
  32. </div>
  33. <!-- end header part -->
  34. <!-- Generated by Doxygen 1.8.10 -->
  35. <script type="text/javascript">
  36. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  37. </script>
  38. <div id="navrow1" class="tabs">
  39. <ul class="tablist">
  40. <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  41. <li><a href="modules.html"><span>Modules</span></a></li>
  42. <li><a href="annotated.html"><span>Classes</span></a></li>
  43. <li><a href="files.html"><span>Files</span></a></li>
  44. <li>
  45. <div id="MSearchBox" class="MSearchBoxInactive">
  46. <span class="left">
  47. <img id="MSearchSelect" src="search/mag_sel.png"
  48. onmouseover="return searchBox.OnSearchSelectShow()"
  49. onmouseout="return searchBox.OnSearchSelectHide()"
  50. alt=""/>
  51. <input type="text" id="MSearchField" value="Search" accesskey="S"
  52. onfocus="searchBox.OnSearchFieldFocus(true)"
  53. onblur="searchBox.OnSearchFieldFocus(false)"
  54. onkeyup="searchBox.OnSearchFieldChange(event)"/>
  55. </span><span class="right">
  56. <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  57. </span>
  58. </div>
  59. </li>
  60. </ul>
  61. </div>
  62. </div><!-- top -->
  63. <!-- window showing the filter options -->
  64. <div id="MSearchSelectWindow"
  65. onmouseover="return searchBox.OnSearchSelectShow()"
  66. onmouseout="return searchBox.OnSearchSelectHide()"
  67. onkeydown="return searchBox.OnSearchSelectKey(event)">
  68. </div>
  69. <!-- iframe showing the search results (closed by default) -->
  70. <div id="MSearchResultsWindow">
  71. <iframe src="javascript:void(0)" frameborder="0"
  72. name="MSearchResults" id="MSearchResults">
  73. </iframe>
  74. </div>
  75. <div class="header">
  76. <div class="summary">
  77. <a href="#nested-classes">Classes</a> &#124;
  78. <a href="#define-members">Macros</a> &#124;
  79. <a href="#func-members">Functions</a> </div>
  80. <div class="headertitle">
  81. <div class="title">Fast Pin I/O</div> </div>
  82. </div><!--header-->
  83. <div class="contents">
  84. <table class="memberdecls">
  85. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
  86. Classes</h2></td></tr>
  87. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_digital_pin.html">DigitalPin&lt; PinNumber &gt;</a></td></tr>
  88. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast digital port I/O. <a href="class_digital_pin.html#details">More...</a><br /></td></tr>
  89. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  90. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_gpio_pin_map__t.html">GpioPinMap_t</a></td></tr>
  91. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  92. </table><table class="memberdecls">
  93. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
  94. Macros</h2></td></tr>
  95. <tr class="memitem:gacf92f370944e233db04f7423bde1c164"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__digital_pin.html#gacf92f370944e233db04f7423bde1c164">GPIO_PIN</a>(reg, bit)&#160;&#160;&#160;{&amp;PIN##reg, &amp;DDR##reg, &amp;PORT##reg, 1 &lt;&lt; bit}</td></tr>
  96. <tr class="separator:gacf92f370944e233db04f7423bde1c164"><td class="memSeparator" colspan="2">&#160;</td></tr>
  97. </table><table class="memberdecls">
  98. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
  99. Functions</h2></td></tr>
  100. <tr class="memitem:ga107992311bca47c7ebee5afdedc280e0"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__digital_pin.html#ga107992311bca47c7ebee5afdedc280e0">badPinCheck</a> (uint8_t pin)</td></tr>
  101. <tr class="separator:ga107992311bca47c7ebee5afdedc280e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  102. <tr class="memitem:ga2a50c39692fdc6a7be0f614f6d730bfe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__digital_pin.html#ga2a50c39692fdc6a7be0f614f6d730bfe">badPinNumber</a> (void)</td></tr>
  103. <tr class="separator:ga2a50c39692fdc6a7be0f614f6d730bfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
  104. <tr class="memitem:gaa28ed1bee40bd072ba33554ac6d36ed8"><td class="memItemLeft" align="right" valign="top">static volatile uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__digital_pin.html#gaa28ed1bee40bd072ba33554ac6d36ed8">ddrReg</a> (uint8_t pin)</td></tr>
  105. <tr class="separator:gaa28ed1bee40bd072ba33554ac6d36ed8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  106. <tr class="memitem:gaff40f792e0b2aefb3ef6f11f32bae3dd"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__digital_pin.html#gaff40f792e0b2aefb3ef6f11f32bae3dd">fastBitWriteSafe</a> (volatile uint8_t *address, uint8_t mask, bool level)</td></tr>
  107. <tr class="separator:gaff40f792e0b2aefb3ef6f11f32bae3dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
  108. <tr class="memitem:gada03ef0d2522fe5639f5239991993409"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__digital_pin.html#gada03ef0d2522fe5639f5239991993409">fastDdrWrite</a> (uint8_t pin, bool level)</td></tr>
  109. <tr class="separator:gada03ef0d2522fe5639f5239991993409"><td class="memSeparator" colspan="2">&#160;</td></tr>
  110. <tr class="memitem:ga618a9ee1c3d1b9fc5c8a2c6a43014b08"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__digital_pin.html#ga618a9ee1c3d1b9fc5c8a2c6a43014b08">fastDigitalRead</a> (uint8_t pin)</td></tr>
  111. <tr class="separator:ga618a9ee1c3d1b9fc5c8a2c6a43014b08"><td class="memSeparator" colspan="2">&#160;</td></tr>
  112. <tr class="memitem:ga5314f1aaede89a4090b44779c8c551f1"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__digital_pin.html#ga5314f1aaede89a4090b44779c8c551f1">fastDigitalToggle</a> (uint8_t pin)</td></tr>
  113. <tr class="separator:ga5314f1aaede89a4090b44779c8c551f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  114. <tr class="memitem:gac4f52b5038c366dd4ac081b18709f19c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__digital_pin.html#gac4f52b5038c366dd4ac081b18709f19c">fastDigitalWrite</a> (uint8_t pin, bool level)</td></tr>
  115. <tr class="separator:gac4f52b5038c366dd4ac081b18709f19c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  116. <tr class="memitem:gab5243728ddd84498e4eb59247f58e55d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__digital_pin.html#gab5243728ddd84498e4eb59247f58e55d">fastPinConfig</a> (uint8_t pin, uint8_t mode, bool level)</td></tr>
  117. <tr class="separator:gab5243728ddd84498e4eb59247f58e55d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  118. <tr class="memitem:ga5b9c17432f07f0eb39283c8b23665fe7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__digital_pin.html#ga5b9c17432f07f0eb39283c8b23665fe7">fastPinMode</a> (uint8_t pin, uint8_t mode)</td></tr>
  119. <tr class="separator:ga5b9c17432f07f0eb39283c8b23665fe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  120. <tr class="memitem:ga99fe9f7aeaaae3764a7b7c40d9d9837b"><td class="memItemLeft" align="right" valign="top">static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__digital_pin.html#ga99fe9f7aeaaae3764a7b7c40d9d9837b">pinMask</a> (uint8_t pin)</td></tr>
  121. <tr class="separator:ga99fe9f7aeaaae3764a7b7c40d9d9837b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  122. <tr class="memitem:ga213b72ce9a61eddce1e85fa057e9e3b6"><td class="memItemLeft" align="right" valign="top">static volatile uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__digital_pin.html#ga213b72ce9a61eddce1e85fa057e9e3b6">pinReg</a> (uint8_t pin)</td></tr>
  123. <tr class="separator:ga213b72ce9a61eddce1e85fa057e9e3b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  124. <tr class="memitem:ga1e2ef44778ccf79ac2c02afe0633ef88"><td class="memItemLeft" align="right" valign="top">static volatile uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__digital_pin.html#ga1e2ef44778ccf79ac2c02afe0633ef88">portReg</a> (uint8_t pin)</td></tr>
  125. <tr class="separator:ga1e2ef44778ccf79ac2c02afe0633ef88"><td class="memSeparator" colspan="2">&#160;</td></tr>
  126. </table>
  127. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  128. <p>Fast Digital I/O functions and template class. </p>
  129. <h2 class="groupheader">Macro Definition Documentation</h2>
  130. <a class="anchor" id="gacf92f370944e233db04f7423bde1c164"></a>
  131. <div class="memitem">
  132. <div class="memproto">
  133. <table class="memname">
  134. <tr>
  135. <td class="memname">#define GPIO_PIN</td>
  136. <td>(</td>
  137. <td class="paramtype">&#160;</td>
  138. <td class="paramname">reg, </td>
  139. </tr>
  140. <tr>
  141. <td class="paramkey"></td>
  142. <td></td>
  143. <td class="paramtype">&#160;</td>
  144. <td class="paramname">bit&#160;</td>
  145. </tr>
  146. <tr>
  147. <td></td>
  148. <td>)</td>
  149. <td></td><td>&#160;&#160;&#160;{&amp;PIN##reg, &amp;DDR##reg, &amp;PORT##reg, 1 &lt;&lt; bit}</td>
  150. </tr>
  151. </table>
  152. </div><div class="memdoc">
  153. <p>Initializer macro. </p>
  154. </div>
  155. </div>
  156. <h2 class="groupheader">Function Documentation</h2>
  157. <a class="anchor" id="ga107992311bca47c7ebee5afdedc280e0"></a>
  158. <div class="memitem">
  159. <div class="memproto">
  160. <table class="mlabels">
  161. <tr>
  162. <td class="mlabels-left">
  163. <table class="memname">
  164. <tr>
  165. <td class="memname">static void badPinCheck </td>
  166. <td>(</td>
  167. <td class="paramtype">uint8_t&#160;</td>
  168. <td class="paramname"><em>pin</em></td><td>)</td>
  169. <td></td>
  170. </tr>
  171. </table>
  172. </td>
  173. <td class="mlabels-right">
  174. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  175. </tr>
  176. </table>
  177. </div><div class="memdoc">
  178. <p>Check for valid pin number </p><dl class="params"><dt>Parameters</dt><dd>
  179. <table class="params">
  180. <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>Number of pin to be checked. </td></tr>
  181. </table>
  182. </dd>
  183. </dl>
  184. </div>
  185. </div>
  186. <a class="anchor" id="ga2a50c39692fdc6a7be0f614f6d730bfe"></a>
  187. <div class="memitem">
  188. <div class="memproto">
  189. <table class="memname">
  190. <tr>
  191. <td class="memname">void badPinNumber </td>
  192. <td>(</td>
  193. <td class="paramtype">void&#160;</td>
  194. <td class="paramname"></td><td>)</td>
  195. <td></td>
  196. </tr>
  197. </table>
  198. </div><div class="memdoc">
  199. <p>generate bad pin number error </p>
  200. </div>
  201. </div>
  202. <a class="anchor" id="gaa28ed1bee40bd072ba33554ac6d36ed8"></a>
  203. <div class="memitem">
  204. <div class="memproto">
  205. <table class="mlabels">
  206. <tr>
  207. <td class="mlabels-left">
  208. <table class="memname">
  209. <tr>
  210. <td class="memname">static volatile uint8_t* ddrReg </td>
  211. <td>(</td>
  212. <td class="paramtype">uint8_t&#160;</td>
  213. <td class="paramname"><em>pin</em></td><td>)</td>
  214. <td></td>
  215. </tr>
  216. </table>
  217. </td>
  218. <td class="mlabels-right">
  219. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  220. </tr>
  221. </table>
  222. </div><div class="memdoc">
  223. <p>DDR register address </p><dl class="params"><dt>Parameters</dt><dd>
  224. <table class="params">
  225. <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>Arduino pin number </td></tr>
  226. </table>
  227. </dd>
  228. </dl>
  229. <dl class="section return"><dt>Returns</dt><dd>register address </dd></dl>
  230. </div>
  231. </div>
  232. <a class="anchor" id="gaff40f792e0b2aefb3ef6f11f32bae3dd"></a>
  233. <div class="memitem">
  234. <div class="memproto">
  235. <table class="mlabels">
  236. <tr>
  237. <td class="mlabels-left">
  238. <table class="memname">
  239. <tr>
  240. <td class="memname">static void fastBitWriteSafe </td>
  241. <td>(</td>
  242. <td class="paramtype">volatile uint8_t *&#160;</td>
  243. <td class="paramname"><em>address</em>, </td>
  244. </tr>
  245. <tr>
  246. <td class="paramkey"></td>
  247. <td></td>
  248. <td class="paramtype">uint8_t&#160;</td>
  249. <td class="paramname"><em>mask</em>, </td>
  250. </tr>
  251. <tr>
  252. <td class="paramkey"></td>
  253. <td></td>
  254. <td class="paramtype">bool&#160;</td>
  255. <td class="paramname"><em>level</em>&#160;</td>
  256. </tr>
  257. <tr>
  258. <td></td>
  259. <td>)</td>
  260. <td></td><td></td>
  261. </tr>
  262. </table>
  263. </td>
  264. <td class="mlabels-right">
  265. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  266. </tr>
  267. </table>
  268. </div><div class="memdoc">
  269. <p>Fast write helper. </p><dl class="params"><dt>Parameters</dt><dd>
  270. <table class="params">
  271. <tr><td class="paramdir">[in]</td><td class="paramname">address</td><td>I/O register address </td></tr>
  272. <tr><td class="paramdir">[in]</td><td class="paramname">mask</td><td>bit mask for pin </td></tr>
  273. <tr><td class="paramdir">[in]</td><td class="paramname">level</td><td>value for bit </td></tr>
  274. </table>
  275. </dd>
  276. </dl>
  277. </div>
  278. </div>
  279. <a class="anchor" id="gada03ef0d2522fe5639f5239991993409"></a>
  280. <div class="memitem">
  281. <div class="memproto">
  282. <table class="mlabels">
  283. <tr>
  284. <td class="mlabels-left">
  285. <table class="memname">
  286. <tr>
  287. <td class="memname">static void fastDdrWrite </td>
  288. <td>(</td>
  289. <td class="paramtype">uint8_t&#160;</td>
  290. <td class="paramname"><em>pin</em>, </td>
  291. </tr>
  292. <tr>
  293. <td class="paramkey"></td>
  294. <td></td>
  295. <td class="paramtype">bool&#160;</td>
  296. <td class="paramname"><em>level</em>&#160;</td>
  297. </tr>
  298. <tr>
  299. <td></td>
  300. <td>)</td>
  301. <td></td><td></td>
  302. </tr>
  303. </table>
  304. </td>
  305. <td class="mlabels-right">
  306. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  307. </tr>
  308. </table>
  309. </div><div class="memdoc">
  310. <p>Write the DDR register. </p><dl class="params"><dt>Parameters</dt><dd>
  311. <table class="params">
  312. <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>Arduino pin number </td></tr>
  313. <tr><td class="paramdir">[in]</td><td class="paramname">level</td><td>value to write </td></tr>
  314. </table>
  315. </dd>
  316. </dl>
  317. </div>
  318. </div>
  319. <a class="anchor" id="ga618a9ee1c3d1b9fc5c8a2c6a43014b08"></a>
  320. <div class="memitem">
  321. <div class="memproto">
  322. <table class="mlabels">
  323. <tr>
  324. <td class="mlabels-left">
  325. <table class="memname">
  326. <tr>
  327. <td class="memname">static bool fastDigitalRead </td>
  328. <td>(</td>
  329. <td class="paramtype">uint8_t&#160;</td>
  330. <td class="paramname"><em>pin</em></td><td>)</td>
  331. <td></td>
  332. </tr>
  333. </table>
  334. </td>
  335. <td class="mlabels-right">
  336. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  337. </tr>
  338. </table>
  339. </div><div class="memdoc">
  340. <p>Read pin value. </p><dl class="params"><dt>Parameters</dt><dd>
  341. <table class="params">
  342. <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>Arduino pin number </td></tr>
  343. </table>
  344. </dd>
  345. </dl>
  346. <dl class="section return"><dt>Returns</dt><dd>value read </dd></dl>
  347. </div>
  348. </div>
  349. <a class="anchor" id="ga5314f1aaede89a4090b44779c8c551f1"></a>
  350. <div class="memitem">
  351. <div class="memproto">
  352. <table class="mlabels">
  353. <tr>
  354. <td class="mlabels-left">
  355. <table class="memname">
  356. <tr>
  357. <td class="memname">static void fastDigitalToggle </td>
  358. <td>(</td>
  359. <td class="paramtype">uint8_t&#160;</td>
  360. <td class="paramname"><em>pin</em></td><td>)</td>
  361. <td></td>
  362. </tr>
  363. </table>
  364. </td>
  365. <td class="mlabels-right">
  366. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  367. </tr>
  368. </table>
  369. </div><div class="memdoc">
  370. <p>Toggle a pin. </p><dl class="params"><dt>Parameters</dt><dd>
  371. <table class="params">
  372. <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>Arduino pin number</td></tr>
  373. </table>
  374. </dd>
  375. </dl>
  376. <p>If the pin is in output mode toggle the pin level. If the pin is in input mode toggle the state of the 20K pullup. </p>
  377. </div>
  378. </div>
  379. <a class="anchor" id="gac4f52b5038c366dd4ac081b18709f19c"></a>
  380. <div class="memitem">
  381. <div class="memproto">
  382. <table class="mlabels">
  383. <tr>
  384. <td class="mlabels-left">
  385. <table class="memname">
  386. <tr>
  387. <td class="memname">static void fastDigitalWrite </td>
  388. <td>(</td>
  389. <td class="paramtype">uint8_t&#160;</td>
  390. <td class="paramname"><em>pin</em>, </td>
  391. </tr>
  392. <tr>
  393. <td class="paramkey"></td>
  394. <td></td>
  395. <td class="paramtype">bool&#160;</td>
  396. <td class="paramname"><em>level</em>&#160;</td>
  397. </tr>
  398. <tr>
  399. <td></td>
  400. <td>)</td>
  401. <td></td><td></td>
  402. </tr>
  403. </table>
  404. </td>
  405. <td class="mlabels-right">
  406. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  407. </tr>
  408. </table>
  409. </div><div class="memdoc">
  410. <p>Set pin value. </p><dl class="params"><dt>Parameters</dt><dd>
  411. <table class="params">
  412. <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>Arduino pin number </td></tr>
  413. <tr><td class="paramdir">[in]</td><td class="paramname">level</td><td>value to write </td></tr>
  414. </table>
  415. </dd>
  416. </dl>
  417. </div>
  418. </div>
  419. <a class="anchor" id="gab5243728ddd84498e4eb59247f58e55d"></a>
  420. <div class="memitem">
  421. <div class="memproto">
  422. <table class="mlabels">
  423. <tr>
  424. <td class="mlabels-left">
  425. <table class="memname">
  426. <tr>
  427. <td class="memname">static void fastPinConfig </td>
  428. <td>(</td>
  429. <td class="paramtype">uint8_t&#160;</td>
  430. <td class="paramname"><em>pin</em>, </td>
  431. </tr>
  432. <tr>
  433. <td class="paramkey"></td>
  434. <td></td>
  435. <td class="paramtype">uint8_t&#160;</td>
  436. <td class="paramname"><em>mode</em>, </td>
  437. </tr>
  438. <tr>
  439. <td class="paramkey"></td>
  440. <td></td>
  441. <td class="paramtype">bool&#160;</td>
  442. <td class="paramname"><em>level</em>&#160;</td>
  443. </tr>
  444. <tr>
  445. <td></td>
  446. <td>)</td>
  447. <td></td><td></td>
  448. </tr>
  449. </table>
  450. </td>
  451. <td class="mlabels-right">
  452. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  453. </tr>
  454. </table>
  455. </div><div class="memdoc">
  456. <p>set pin configuration </p><dl class="params"><dt>Parameters</dt><dd>
  457. <table class="params">
  458. <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>Arduino pin number </td></tr>
  459. <tr><td class="paramdir">[in]</td><td class="paramname">mode</td><td>mode INPUT or OUTPUT. </td></tr>
  460. <tr><td class="paramdir">[in]</td><td class="paramname">level</td><td>If mode is output, set level high/low. If mode is input, enable or disable the pin's 20K pullup. </td></tr>
  461. </table>
  462. </dd>
  463. </dl>
  464. </div>
  465. </div>
  466. <a class="anchor" id="ga5b9c17432f07f0eb39283c8b23665fe7"></a>
  467. <div class="memitem">
  468. <div class="memproto">
  469. <table class="mlabels">
  470. <tr>
  471. <td class="mlabels-left">
  472. <table class="memname">
  473. <tr>
  474. <td class="memname">static void fastPinMode </td>
  475. <td>(</td>
  476. <td class="paramtype">uint8_t&#160;</td>
  477. <td class="paramname"><em>pin</em>, </td>
  478. </tr>
  479. <tr>
  480. <td class="paramkey"></td>
  481. <td></td>
  482. <td class="paramtype">uint8_t&#160;</td>
  483. <td class="paramname"><em>mode</em>&#160;</td>
  484. </tr>
  485. <tr>
  486. <td></td>
  487. <td>)</td>
  488. <td></td><td></td>
  489. </tr>
  490. </table>
  491. </td>
  492. <td class="mlabels-right">
  493. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  494. </tr>
  495. </table>
  496. </div><div class="memdoc">
  497. <p>Set pin mode. </p><dl class="params"><dt>Parameters</dt><dd>
  498. <table class="params">
  499. <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>Arduino pin number </td></tr>
  500. <tr><td class="paramdir">[in]</td><td class="paramname">mode</td><td>INPUT, OUTPUT, or INPUT_PULLUP.</td></tr>
  501. </table>
  502. </dd>
  503. </dl>
  504. <p>The internal pullup resistors will be enabled if mode is INPUT_PULLUP and disabled if the mode is INPUT. </p>
  505. </div>
  506. </div>
  507. <a class="anchor" id="ga99fe9f7aeaaae3764a7b7c40d9d9837b"></a>
  508. <div class="memitem">
  509. <div class="memproto">
  510. <table class="mlabels">
  511. <tr>
  512. <td class="mlabels-left">
  513. <table class="memname">
  514. <tr>
  515. <td class="memname">static uint8_t pinMask </td>
  516. <td>(</td>
  517. <td class="paramtype">uint8_t&#160;</td>
  518. <td class="paramname"><em>pin</em></td><td>)</td>
  519. <td></td>
  520. </tr>
  521. </table>
  522. </td>
  523. <td class="mlabels-right">
  524. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  525. </tr>
  526. </table>
  527. </div><div class="memdoc">
  528. <p>Bit mask for pin </p><dl class="params"><dt>Parameters</dt><dd>
  529. <table class="params">
  530. <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>Arduino pin number </td></tr>
  531. </table>
  532. </dd>
  533. </dl>
  534. <dl class="section return"><dt>Returns</dt><dd>mask </dd></dl>
  535. </div>
  536. </div>
  537. <a class="anchor" id="ga213b72ce9a61eddce1e85fa057e9e3b6"></a>
  538. <div class="memitem">
  539. <div class="memproto">
  540. <table class="mlabels">
  541. <tr>
  542. <td class="mlabels-left">
  543. <table class="memname">
  544. <tr>
  545. <td class="memname">static volatile uint8_t* pinReg </td>
  546. <td>(</td>
  547. <td class="paramtype">uint8_t&#160;</td>
  548. <td class="paramname"><em>pin</em></td><td>)</td>
  549. <td></td>
  550. </tr>
  551. </table>
  552. </td>
  553. <td class="mlabels-right">
  554. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  555. </tr>
  556. </table>
  557. </div><div class="memdoc">
  558. <p>PIN register address </p><dl class="params"><dt>Parameters</dt><dd>
  559. <table class="params">
  560. <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>Arduino pin number </td></tr>
  561. </table>
  562. </dd>
  563. </dl>
  564. <dl class="section return"><dt>Returns</dt><dd>register address </dd></dl>
  565. </div>
  566. </div>
  567. <a class="anchor" id="ga1e2ef44778ccf79ac2c02afe0633ef88"></a>
  568. <div class="memitem">
  569. <div class="memproto">
  570. <table class="mlabels">
  571. <tr>
  572. <td class="mlabels-left">
  573. <table class="memname">
  574. <tr>
  575. <td class="memname">static volatile uint8_t* portReg </td>
  576. <td>(</td>
  577. <td class="paramtype">uint8_t&#160;</td>
  578. <td class="paramname"><em>pin</em></td><td>)</td>
  579. <td></td>
  580. </tr>
  581. </table>
  582. </td>
  583. <td class="mlabels-right">
  584. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
  585. </tr>
  586. </table>
  587. </div><div class="memdoc">
  588. <p>PORT register address </p><dl class="params"><dt>Parameters</dt><dd>
  589. <table class="params">
  590. <tr><td class="paramdir">[in]</td><td class="paramname">pin</td><td>Arduino pin number </td></tr>
  591. </table>
  592. </dd>
  593. </dl>
  594. <dl class="section return"><dt>Returns</dt><dd>register address </dd></dl>
  595. </div>
  596. </div>
  597. </div><!-- contents -->
  598. <!-- start footer part -->
  599. <hr class="footer"/><address class="footer"><small>
  600. Generated on Fri Feb 12 2016 13:43:49 for SdFat by &#160;<a href="http://www.doxygen.org/index.html">
  601. <img class="footer" src="doxygen.png" alt="doxygen"/>
  602. </a> 1.8.10
  603. </small></address>
  604. </body>
  605. </html>