]> Git Repo - pico-vscode.git/blob - web/docs/group__sm__config.html
Merge branch 'main' into main
[pico-vscode.git] / web / docs / group__sm__config.html
1 <!-- HTML header for doxygen 1.8.20-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head>
5         <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6         <meta http-equiv="X-UA-Compatible" content="IE=9"/>
7         <meta name="generator" content="Doxygen 1.9.4"/>
8         <meta name="viewport" content="width=device-width, initial-scale=1"/>
9         <title>Raspberry Pi Pico SDK: sm_config</title>
10         <!-- <link href="tabs.css" rel="stylesheet" type="text/css"/> -->
11         <script type="text/javascript" src="jquery.js"></script>
12         <script type="text/javascript" src="dynsections.js"></script>
13         <link href="navtree.css" rel="stylesheet" type="text/css"/>
14 <script type="text/javascript" src="resize.js"></script>
15 <script type="text/javascript" src="navtreedata.js"></script>
16 <script type="text/javascript" src="navtree.js"></script>
17         <link href="search/search.css" rel="stylesheet" type="text/css"/>
18 <script type="text/javascript" src="search/searchdata.js"></script>
19 <script type="text/javascript" src="search/search.js"></script>
20     <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">
21         <link href="doxygen.css" rel="stylesheet" type="text/css" />
22         <link href="normalise.css" rel="stylesheet" type="text/css"/>
23 <link href="main.css" rel="stylesheet" type="text/css"/>
24 <link href="styles.css" rel="stylesheet" type="text/css"/>
25 </head>
26 <body>
27         <div class="navigation-mobile">
28                 <div class="logo--mobile">
29                         <a href="/"><img src="logo-mobile.svg" alt="Raspberry Pi"></a>
30                 </div>
31                 <div class="navigation-toggle">
32                         <span class="line-1"></span>
33                         <span class="line-2">
34                                 <p>Menu Toggle</p>
35                         </span>
36                         <span class="line-3"></span>
37                 </div>
38         </div>
39         <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
40                 <div class="logo">
41                         <a href="index.html"> <img src="logo.svg" alt="Raspberry Pi"></a>
42                         <span style="display: inline-block; margin-top: 10px;">
43                                 v2.0.0
44                         </span>
45                 </div>
46                 <div class="navigation-footer">
47                         <img src="logo-mobile.svg" alt="Raspberry Pi">
48                         <a href="https://www.raspberrypi.com/" target="_blank">By Raspberry Pi Ltd</a>
49                 </div>
50 <!--            <div class="search">
51                         <form>
52                                 <input type="search" name="search" id="search" placeholder="Search">
53                                 <input type="submit" value="Search">
54                         </form>
55                 </div> -->
56 <!-- Generated by Doxygen 1.9.4 -->
57 <script type="text/javascript">
58 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
59 var searchBox = new SearchBox("searchBox", "search",'Search','.html');
60 /* @license-end */
61 </script>
62 <script type="text/javascript" src="menudata.js"></script>
63 <script type="text/javascript" src="menu.js"></script>
64 <script type="text/javascript">
65 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
66 $(function() {
67   initMenu('',true,false,'search.php','Search');
68   $(document).ready(function() { init_search(); });
69 });
70 /* @license-end */
71 </script>
72 <div id="main-nav"></div>
73 </div><!-- top -->
74 <div id="side-nav" class="ui-resizable side-nav-resizable">
75   <div id="nav-tree">
76     <div id="nav-tree-contents">
77       <div id="nav-sync" class="sync"></div>
78     </div>
79   </div>
80   <div id="splitbar" style="-moz-user-select:none;" 
81        class="ui-resizable-handle">
82   </div>
83 </div>
84 <script type="text/javascript">
85 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
86 $(document).ready(function(){initNavTree('group__sm__config.html',''); initResizable(); });
87 /* @license-end */
88 </script>
89 <div id="doc-content">
90 <!-- window showing the filter options -->
91 <div id="MSearchSelectWindow"
92      onmouseover="return searchBox.OnSearchSelectShow()"
93      onmouseout="return searchBox.OnSearchSelectHide()"
94      onkeydown="return searchBox.OnSearchSelectKey(event)">
95 </div>
96
97 <!-- iframe showing the search results (closed by default) -->
98 <div id="MSearchResultsWindow">
99 <iframe src="javascript:void(0)" frameborder="0" 
100         name="MSearchResults" id="MSearchResults">
101 </iframe>
102 </div>
103
104 <div class="header">
105   <div class="summary">
106 <a href="#nested-classes">Data Structures</a> &#124;
107 <a href="#func-members">Functions</a>  </div>
108   <div class="headertitle"><div class="title">sm_config<div class="ingroups"><a class="el" href="group__hardware.html">Hardware APIs</a> &raquo; <a class="el" href="group__hardware__pio.html">hardware_pio</a></div></div></div>
109 </div><!--header-->
110 <div class="contents">
111
112 <p>PIO state machine configuration.  
113 <a href="#details">More...</a></p>
114 <table class="memberdecls">
115 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
116 Data Structures</h2></td></tr>
117 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpio__sm__config.html">pio_sm_config</a></td></tr>
118 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">PIO Configuration structure.  <a href="structpio__sm__config.html#details">More...</a><br /></td></tr>
119 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
120 </table><table class="memberdecls">
121 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
122 Functions</h2></td></tr>
123 <tr class="memitem:ga1dbca28933c083592e6e359effe250bf"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga1dbca28933c083592e6e359effe250bf">sm_config_set_out_pin_base</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint out_base)</td></tr>
124 <tr class="memdesc:ga1dbca28933c083592e6e359effe250bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the base of the 'out' pins in a state machine configuration.  <a href="group__sm__config.html#ga1dbca28933c083592e6e359effe250bf">More...</a><br /></td></tr>
125 <tr class="separator:ga1dbca28933c083592e6e359effe250bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
126 <tr class="memitem:gade3d072e319fc7d10bec180a9692ea89"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gade3d072e319fc7d10bec180a9692ea89">sm_config_set_out_pin_count</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint out_count)</td></tr>
127 <tr class="memdesc:gade3d072e319fc7d10bec180a9692ea89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the number of 'out' pins in a state machine configuration.  <a href="group__sm__config.html#gade3d072e319fc7d10bec180a9692ea89">More...</a><br /></td></tr>
128 <tr class="separator:gade3d072e319fc7d10bec180a9692ea89"><td class="memSeparator" colspan="2">&#160;</td></tr>
129 <tr class="memitem:gaf3004bbd996443d0c841664ebc92905c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaf3004bbd996443d0c841664ebc92905c">sm_config_set_out_pins</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint out_base, uint out_count)</td></tr>
130 <tr class="memdesc:gaf3004bbd996443d0c841664ebc92905c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the 'out' pins in a state machine configuration.  <a href="group__sm__config.html#gaf3004bbd996443d0c841664ebc92905c">More...</a><br /></td></tr>
131 <tr class="separator:gaf3004bbd996443d0c841664ebc92905c"><td class="memSeparator" colspan="2">&#160;</td></tr>
132 <tr class="memitem:ga40d4807c0665d30ceab153b7444560eb"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga40d4807c0665d30ceab153b7444560eb">sm_config_set_set_pin_base</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint set_base)</td></tr>
133 <tr class="memdesc:ga40d4807c0665d30ceab153b7444560eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the base of the 'set' pins in a state machine configuration.  <a href="group__sm__config.html#ga40d4807c0665d30ceab153b7444560eb">More...</a><br /></td></tr>
134 <tr class="separator:ga40d4807c0665d30ceab153b7444560eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
135 <tr class="memitem:ga78e129fe383f2af0fc5e1448dea4c3d6"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga78e129fe383f2af0fc5e1448dea4c3d6">sm_config_set_set_pin_count</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint set_count)</td></tr>
136 <tr class="memdesc:ga78e129fe383f2af0fc5e1448dea4c3d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the count of 'set' pins in a state machine configuration.  <a href="group__sm__config.html#ga78e129fe383f2af0fc5e1448dea4c3d6">More...</a><br /></td></tr>
137 <tr class="separator:ga78e129fe383f2af0fc5e1448dea4c3d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
138 <tr class="memitem:gada1dff2c00b7d3a1cf722880c8373424"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gada1dff2c00b7d3a1cf722880c8373424">sm_config_set_set_pins</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint set_base, uint set_count)</td></tr>
139 <tr class="memdesc:gada1dff2c00b7d3a1cf722880c8373424"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the 'set' pins in a state machine configuration.  <a href="group__sm__config.html#gada1dff2c00b7d3a1cf722880c8373424">More...</a><br /></td></tr>
140 <tr class="separator:gada1dff2c00b7d3a1cf722880c8373424"><td class="memSeparator" colspan="2">&#160;</td></tr>
141 <tr class="memitem:gaaf804a05a2ebaa127d0d216b3d4e3e80"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaaf804a05a2ebaa127d0d216b3d4e3e80">sm_config_set_in_pin_base</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint in_base)</td></tr>
142 <tr class="memdesc:gaaf804a05a2ebaa127d0d216b3d4e3e80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the base of the 'in' pins in a state machine configuration.  <a href="group__sm__config.html#gaaf804a05a2ebaa127d0d216b3d4e3e80">More...</a><br /></td></tr>
143 <tr class="separator:gaaf804a05a2ebaa127d0d216b3d4e3e80"><td class="memSeparator" colspan="2">&#160;</td></tr>
144 <tr class="memitem:gac418400e30520ea3961d8977c180a4f9"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gac418400e30520ea3961d8977c180a4f9">sm_config_set_in_pins</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint in_base)</td></tr>
145 <tr class="memdesc:gac418400e30520ea3961d8977c180a4f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the base fpr the 'in' pins in a state machine configuration.  <a href="group__sm__config.html#gac418400e30520ea3961d8977c180a4f9">More...</a><br /></td></tr>
146 <tr class="separator:gac418400e30520ea3961d8977c180a4f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
147 <tr class="memitem:ga7abfda1f60c62565d5b13536b0605af7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga7abfda1f60c62565d5b13536b0605af7">sm_config_set_sideset_pin_base</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint sideset_base)</td></tr>
148 <tr class="memdesc:ga7abfda1f60c62565d5b13536b0605af7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the base of the 'sideset' pins in a state machine configuration.  <a href="group__sm__config.html#ga7abfda1f60c62565d5b13536b0605af7">More...</a><br /></td></tr>
149 <tr class="separator:ga7abfda1f60c62565d5b13536b0605af7"><td class="memSeparator" colspan="2">&#160;</td></tr>
150 <tr class="memitem:gad55bf8b410fa1d13bd1bd020587e01d7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gad55bf8b410fa1d13bd1bd020587e01d7">sm_config_set_sideset_pins</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint sideset_base)</td></tr>
151 <tr class="memdesc:gad55bf8b410fa1d13bd1bd020587e01d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the 'sideset' pins in a state machine configuration.  <a href="group__sm__config.html#gad55bf8b410fa1d13bd1bd020587e01d7">More...</a><br /></td></tr>
152 <tr class="separator:gad55bf8b410fa1d13bd1bd020587e01d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
153 <tr class="memitem:gaf543422206a8dbdc2efea85818dd650e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaf543422206a8dbdc2efea85818dd650e">sm_config_set_sideset</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint bit_count, bool optional, bool pindirs)</td></tr>
154 <tr class="memdesc:gaf543422206a8dbdc2efea85818dd650e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the 'sideset' options in a state machine configuration.  <a href="group__sm__config.html#gaf543422206a8dbdc2efea85818dd650e">More...</a><br /></td></tr>
155 <tr class="separator:gaf543422206a8dbdc2efea85818dd650e"><td class="memSeparator" colspan="2">&#160;</td></tr>
156 <tr class="memitem:ga365abc6d25301810ca5ee11e5b36c763"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga365abc6d25301810ca5ee11e5b36c763">sm_config_set_clkdiv_int_frac</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint16_t div_int, uint8_t div_frac)</td></tr>
157 <tr class="memdesc:ga365abc6d25301810ca5ee11e5b36c763"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the state machine clock divider (from integer and fractional parts - 16:8) in a state machine configuration.  <a href="group__sm__config.html#ga365abc6d25301810ca5ee11e5b36c763">More...</a><br /></td></tr>
158 <tr class="separator:ga365abc6d25301810ca5ee11e5b36c763"><td class="memSeparator" colspan="2">&#160;</td></tr>
159 <tr class="memitem:gae8c09c7a4372da95ad777faae51c5a24"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gae8c09c7a4372da95ad777faae51c5a24">sm_config_set_clkdiv</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, float div)</td></tr>
160 <tr class="memdesc:gae8c09c7a4372da95ad777faae51c5a24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the state machine clock divider (from a floating point value) in a state machine configuration.  <a href="group__sm__config.html#gae8c09c7a4372da95ad777faae51c5a24">More...</a><br /></td></tr>
161 <tr class="separator:gae8c09c7a4372da95ad777faae51c5a24"><td class="memSeparator" colspan="2">&#160;</td></tr>
162 <tr class="memitem:gafb753e8b35bbea9209ca4399a845f89c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gafb753e8b35bbea9209ca4399a845f89c">sm_config_set_wrap</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint wrap_target, uint wrap)</td></tr>
163 <tr class="memdesc:gafb753e8b35bbea9209ca4399a845f89c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the wrap addresses in a state machine configuration.  <a href="group__sm__config.html#gafb753e8b35bbea9209ca4399a845f89c">More...</a><br /></td></tr>
164 <tr class="separator:gafb753e8b35bbea9209ca4399a845f89c"><td class="memSeparator" colspan="2">&#160;</td></tr>
165 <tr class="memitem:gaf2bfc66d6427ff92519e38dcb611133b"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaf2bfc66d6427ff92519e38dcb611133b">sm_config_set_jmp_pin</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint pin)</td></tr>
166 <tr class="memdesc:gaf2bfc66d6427ff92519e38dcb611133b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the 'jmp' pin in a state machine configuration.  <a href="group__sm__config.html#gaf2bfc66d6427ff92519e38dcb611133b">More...</a><br /></td></tr>
167 <tr class="separator:gaf2bfc66d6427ff92519e38dcb611133b"><td class="memSeparator" colspan="2">&#160;</td></tr>
168 <tr class="memitem:gaed7a6e7dc4f1979c7c62e4773df8c79b"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaed7a6e7dc4f1979c7c62e4773df8c79b">sm_config_set_in_shift</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, bool shift_right, bool autopush, uint push_threshold)</td></tr>
169 <tr class="memdesc:gaed7a6e7dc4f1979c7c62e4773df8c79b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup 'in' shifting parameters in a state machine configuration.  <a href="group__sm__config.html#gaed7a6e7dc4f1979c7c62e4773df8c79b">More...</a><br /></td></tr>
170 <tr class="separator:gaed7a6e7dc4f1979c7c62e4773df8c79b"><td class="memSeparator" colspan="2">&#160;</td></tr>
171 <tr class="memitem:ga613bed03e10e569f1b7aede74d40a5b5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga613bed03e10e569f1b7aede74d40a5b5">sm_config_set_out_shift</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, bool shift_right, bool autopull, uint pull_threshold)</td></tr>
172 <tr class="memdesc:ga613bed03e10e569f1b7aede74d40a5b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup 'out' shifting parameters in a state machine configuration.  <a href="group__sm__config.html#ga613bed03e10e569f1b7aede74d40a5b5">More...</a><br /></td></tr>
173 <tr class="separator:ga613bed03e10e569f1b7aede74d40a5b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
174 <tr class="memitem:gafea1a06362182514518ebd91b2d52fd5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gafea1a06362182514518ebd91b2d52fd5">sm_config_set_fifo_join</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, enum <a class="el" href="group__hardware__pio.html#ga7d415b966abbc1c25315d0775d093356">pio_fifo_join</a> join)</td></tr>
175 <tr class="memdesc:gafea1a06362182514518ebd91b2d52fd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup the FIFO joining in a state machine configuration.  <a href="group__sm__config.html#gafea1a06362182514518ebd91b2d52fd5">More...</a><br /></td></tr>
176 <tr class="separator:gafea1a06362182514518ebd91b2d52fd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
177 <tr class="memitem:ga8a9141ceadf9e735b1e96457865de3f6"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga8a9141ceadf9e735b1e96457865de3f6">sm_config_set_out_special</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, bool sticky, bool has_enable_pin, uint enable_pin_index)</td></tr>
178 <tr class="memdesc:ga8a9141ceadf9e735b1e96457865de3f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set special 'out' operations in a state machine configuration.  <a href="group__sm__config.html#ga8a9141ceadf9e735b1e96457865de3f6">More...</a><br /></td></tr>
179 <tr class="separator:ga8a9141ceadf9e735b1e96457865de3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
180 <tr class="memitem:gacd24870944ce2f00f3f7847bb3e5d543"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gacd24870944ce2f00f3f7847bb3e5d543">sm_config_set_mov_status</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, enum <a class="el" href="group__hardware__pio.html#ga356b3f4974cd31fdc4a2de381aceea5e">pio_mov_status_type</a> status_sel, uint status_n)</td></tr>
181 <tr class="memdesc:gacd24870944ce2f00f3f7847bb3e5d543"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set source for 'mov status' in a state machine configuration.  <a href="group__sm__config.html#gacd24870944ce2f00f3f7847bb3e5d543">More...</a><br /></td></tr>
182 <tr class="separator:gacd24870944ce2f00f3f7847bb3e5d543"><td class="memSeparator" colspan="2">&#160;</td></tr>
183 <tr class="memitem:gaf2d2a23b08ba74188160469b3fd09936"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structpio__sm__config.html">pio_sm_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaf2d2a23b08ba74188160469b3fd09936">pio_get_default_sm_config</a> (void)</td></tr>
184 <tr class="memdesc:gaf2d2a23b08ba74188160469b3fd09936"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the default state machine configuration.  <a href="group__sm__config.html#gaf2d2a23b08ba74188160469b3fd09936">More...</a><br /></td></tr>
185 <tr class="separator:gaf2d2a23b08ba74188160469b3fd09936"><td class="memSeparator" colspan="2">&#160;</td></tr>
186 </table>
187 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
188 <p >PIO state machine configuration. </p>
189 <p >A PIO block needs to be configured, these functions provide helpers to set up configuration structures. See <a class="el" href="group__hardware__pio.html#ga28e9a84f3332ebf088f665d4b676117b">pio_sm_set_config</a> </p>
190 <h2 class="groupheader">Function Documentation</h2>
191 <a id="gaf2d2a23b08ba74188160469b3fd09936" name="gaf2d2a23b08ba74188160469b3fd09936"></a>
192 <h2 class="memtitle"><span class="permalink"><a href="#gaf2d2a23b08ba74188160469b3fd09936">&#9670;&nbsp;</a></span>pio_get_default_sm_config()</h2>
193
194 <div class="memitem">
195 <div class="memproto">
196 <table class="mlabels">
197   <tr>
198   <td class="mlabels-left">
199       <table class="memname">
200         <tr>
201           <td class="memname">static <a class="el" href="structpio__sm__config.html">pio_sm_config</a> pio_get_default_sm_config </td>
202           <td>(</td>
203           <td class="paramtype">void&#160;</td>
204           <td class="paramname"></td><td>)</td>
205           <td></td>
206         </tr>
207       </table>
208   </td>
209   <td class="mlabels-right">
210 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
211   </tr>
212 </table>
213 </div><div class="memdoc">
214
215 <p>Get the default state machine configuration. </p>
216 <table class="markdownTable">
217 <tr class="markdownTableHead">
218 <th class="markdownTableHeadNone">Setting   </th><th class="markdownTableHeadNone">Default    </th></tr>
219 <tr class="markdownTableRowOdd">
220 <td class="markdownTableBodyNone">Out Pins   </td><td class="markdownTableBodyNone">32 starting at 0    </td></tr>
221 <tr class="markdownTableRowEven">
222 <td class="markdownTableBodyNone">Set Pins   </td><td class="markdownTableBodyNone">0 starting at 0    </td></tr>
223 <tr class="markdownTableRowOdd">
224 <td class="markdownTableBodyNone">In Pins (base)   </td><td class="markdownTableBodyNone">0    </td></tr>
225 <tr class="markdownTableRowEven">
226 <td class="markdownTableBodyNone">Side Set Pins (base)   </td><td class="markdownTableBodyNone">0    </td></tr>
227 <tr class="markdownTableRowOdd">
228 <td class="markdownTableBodyNone">Side Set   </td><td class="markdownTableBodyNone">disabled    </td></tr>
229 <tr class="markdownTableRowEven">
230 <td class="markdownTableBodyNone">Wrap   </td><td class="markdownTableBodyNone">wrap=31, wrap_to=0    </td></tr>
231 <tr class="markdownTableRowOdd">
232 <td class="markdownTableBodyNone">In Shift   </td><td class="markdownTableBodyNone">shift_direction=right, autopush=false, push_threshold=32    </td></tr>
233 <tr class="markdownTableRowEven">
234 <td class="markdownTableBodyNone">Out Shift   </td><td class="markdownTableBodyNone">shift_direction=right, autopull=false, pull_threshold=32    </td></tr>
235 <tr class="markdownTableRowOdd">
236 <td class="markdownTableBodyNone">Jmp Pin   </td><td class="markdownTableBodyNone">0    </td></tr>
237 <tr class="markdownTableRowEven">
238 <td class="markdownTableBodyNone">Out Special   </td><td class="markdownTableBodyNone">sticky=false, has_enable_pin=false, enable_pin_index=0    </td></tr>
239 <tr class="markdownTableRowOdd">
240 <td class="markdownTableBodyNone">Mov Status   </td><td class="markdownTableBodyNone">status_sel=STATUS_TX_LESSTHAN, n=0   </td></tr>
241 </table>
242 <dl class="section return"><dt>Returns</dt><dd>the default state machine configuration which can then be modified. </dd></dl>
243
244 </div>
245 </div>
246 <a id="gae8c09c7a4372da95ad777faae51c5a24" name="gae8c09c7a4372da95ad777faae51c5a24"></a>
247 <h2 class="memtitle"><span class="permalink"><a href="#gae8c09c7a4372da95ad777faae51c5a24">&#9670;&nbsp;</a></span>sm_config_set_clkdiv()</h2>
248
249 <div class="memitem">
250 <div class="memproto">
251 <table class="mlabels">
252   <tr>
253   <td class="mlabels-left">
254       <table class="memname">
255         <tr>
256           <td class="memname">static void sm_config_set_clkdiv </td>
257           <td>(</td>
258           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
259           <td class="paramname"><em>c</em>, </td>
260         </tr>
261         <tr>
262           <td class="paramkey"></td>
263           <td></td>
264           <td class="paramtype">float&#160;</td>
265           <td class="paramname"><em>div</em>&#160;</td>
266         </tr>
267         <tr>
268           <td></td>
269           <td>)</td>
270           <td></td><td></td>
271         </tr>
272       </table>
273   </td>
274   <td class="mlabels-right">
275 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
276   </tr>
277 </table>
278 </div><div class="memdoc">
279
280 <p>Set the state machine clock divider (from a floating point value) in a state machine configuration. </p>
281 <p >The clock divider slows the state machine's execution by masking the system clock on some cycles, in a repeating pattern, so that the state machine does not advance. Effectively this produces a slower clock for the state machine to run from, which can be used to generate e.g. a particular UART baud rate. See the datasheet for further detail.</p>
282 <dl class="params"><dt>Parameters</dt><dd>
283   <table class="params">
284     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
285     <tr><td class="paramname">div</td><td>The fractional divisor to be set. 1 for full speed. An integer clock divisor of n will cause the state machine to run 1 cycle in every n. Note that for small n, the jitter introduced by a fractional divider (e.g. 2.5) may be unacceptable although it will depend on the use case. </td></tr>
286   </table>
287   </dd>
288 </dl>
289
290 </div>
291 </div>
292 <a id="ga365abc6d25301810ca5ee11e5b36c763" name="ga365abc6d25301810ca5ee11e5b36c763"></a>
293 <h2 class="memtitle"><span class="permalink"><a href="#ga365abc6d25301810ca5ee11e5b36c763">&#9670;&nbsp;</a></span>sm_config_set_clkdiv_int_frac()</h2>
294
295 <div class="memitem">
296 <div class="memproto">
297 <table class="mlabels">
298   <tr>
299   <td class="mlabels-left">
300       <table class="memname">
301         <tr>
302           <td class="memname">static void sm_config_set_clkdiv_int_frac </td>
303           <td>(</td>
304           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
305           <td class="paramname"><em>c</em>, </td>
306         </tr>
307         <tr>
308           <td class="paramkey"></td>
309           <td></td>
310           <td class="paramtype">uint16_t&#160;</td>
311           <td class="paramname"><em>div_int</em>, </td>
312         </tr>
313         <tr>
314           <td class="paramkey"></td>
315           <td></td>
316           <td class="paramtype">uint8_t&#160;</td>
317           <td class="paramname"><em>div_frac</em>&#160;</td>
318         </tr>
319         <tr>
320           <td></td>
321           <td>)</td>
322           <td></td><td></td>
323         </tr>
324       </table>
325   </td>
326   <td class="mlabels-right">
327 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
328   </tr>
329 </table>
330 </div><div class="memdoc">
331
332 <p>Set the state machine clock divider (from integer and fractional parts - 16:8) in a state machine configuration. </p>
333 <p >The clock divider can slow the state machine's execution to some rate below the system clock frequency, by enabling the state machine on some cycles but not on others, in a regular pattern. This can be used to generate e.g. a given UART baud rate. See the datasheet for further detail.</p>
334 <dl class="params"><dt>Parameters</dt><dd>
335   <table class="params">
336     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
337     <tr><td class="paramname">div_int</td><td>Integer part of the divisor </td></tr>
338     <tr><td class="paramname">div_frac</td><td>Fractional part in 1/256ths </td></tr>
339   </table>
340   </dd>
341 </dl>
342 <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__sm__config.html#gae8c09c7a4372da95ad777faae51c5a24" title="Set the state machine clock divider (from a floating point value) in a state machine configuration.">sm_config_set_clkdiv()</a> </dd></dl>
343
344 </div>
345 </div>
346 <a id="gafea1a06362182514518ebd91b2d52fd5" name="gafea1a06362182514518ebd91b2d52fd5"></a>
347 <h2 class="memtitle"><span class="permalink"><a href="#gafea1a06362182514518ebd91b2d52fd5">&#9670;&nbsp;</a></span>sm_config_set_fifo_join()</h2>
348
349 <div class="memitem">
350 <div class="memproto">
351 <table class="mlabels">
352   <tr>
353   <td class="mlabels-left">
354       <table class="memname">
355         <tr>
356           <td class="memname">static void sm_config_set_fifo_join </td>
357           <td>(</td>
358           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
359           <td class="paramname"><em>c</em>, </td>
360         </tr>
361         <tr>
362           <td class="paramkey"></td>
363           <td></td>
364           <td class="paramtype">enum <a class="el" href="group__hardware__pio.html#ga7d415b966abbc1c25315d0775d093356">pio_fifo_join</a>&#160;</td>
365           <td class="paramname"><em>join</em>&#160;</td>
366         </tr>
367         <tr>
368           <td></td>
369           <td>)</td>
370           <td></td><td></td>
371         </tr>
372       </table>
373   </td>
374   <td class="mlabels-right">
375 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
376   </tr>
377 </table>
378 </div><div class="memdoc">
379
380 <p>Setup the FIFO joining in a state machine configuration. </p>
381 <dl class="params"><dt>Parameters</dt><dd>
382   <table class="params">
383     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
384     <tr><td class="paramname">join</td><td>Specifies the join type. </td></tr>
385   </table>
386   </dd>
387 </dl>
388 <dl class="section see"><dt>See also</dt><dd>enum <a class="el" href="group__hardware__pio.html#ga7d415b966abbc1c25315d0775d093356" title="FIFO join states.">pio_fifo_join</a> </dd></dl>
389
390 </div>
391 </div>
392 <a id="gaaf804a05a2ebaa127d0d216b3d4e3e80" name="gaaf804a05a2ebaa127d0d216b3d4e3e80"></a>
393 <h2 class="memtitle"><span class="permalink"><a href="#gaaf804a05a2ebaa127d0d216b3d4e3e80">&#9670;&nbsp;</a></span>sm_config_set_in_pin_base()</h2>
394
395 <div class="memitem">
396 <div class="memproto">
397 <table class="mlabels">
398   <tr>
399   <td class="mlabels-left">
400       <table class="memname">
401         <tr>
402           <td class="memname">static void sm_config_set_in_pin_base </td>
403           <td>(</td>
404           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
405           <td class="paramname"><em>c</em>, </td>
406         </tr>
407         <tr>
408           <td class="paramkey"></td>
409           <td></td>
410           <td class="paramtype">uint&#160;</td>
411           <td class="paramname"><em>in_base</em>&#160;</td>
412         </tr>
413         <tr>
414           <td></td>
415           <td>)</td>
416           <td></td><td></td>
417         </tr>
418       </table>
419   </td>
420   <td class="mlabels-right">
421 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
422   </tr>
423 </table>
424 </div><div class="memdoc">
425
426 <p>Set the base of the 'in' pins in a state machine configuration. </p>
427 <p >'in' pins can overlap with the 'out', 'set' and 'sideset' pins</p>
428 <dl class="params"><dt>Parameters</dt><dd>
429   <table class="params">
430     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
431     <tr><td class="paramname">in_base</td><td>0-31 First pin to use as input </td></tr>
432   </table>
433   </dd>
434 </dl>
435
436 </div>
437 </div>
438 <a id="gac418400e30520ea3961d8977c180a4f9" name="gac418400e30520ea3961d8977c180a4f9"></a>
439 <h2 class="memtitle"><span class="permalink"><a href="#gac418400e30520ea3961d8977c180a4f9">&#9670;&nbsp;</a></span>sm_config_set_in_pins()</h2>
440
441 <div class="memitem">
442 <div class="memproto">
443 <table class="mlabels">
444   <tr>
445   <td class="mlabels-left">
446       <table class="memname">
447         <tr>
448           <td class="memname">static void sm_config_set_in_pins </td>
449           <td>(</td>
450           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
451           <td class="paramname"><em>c</em>, </td>
452         </tr>
453         <tr>
454           <td class="paramkey"></td>
455           <td></td>
456           <td class="paramtype">uint&#160;</td>
457           <td class="paramname"><em>in_base</em>&#160;</td>
458         </tr>
459         <tr>
460           <td></td>
461           <td>)</td>
462           <td></td><td></td>
463         </tr>
464       </table>
465   </td>
466   <td class="mlabels-right">
467 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
468   </tr>
469 </table>
470 </div><div class="memdoc">
471
472 <p>Set the base fpr the 'in' pins in a state machine configuration. </p>
473 <p >'in' pins can overlap with the 'out', 'set' and 'sideset' pins</p>
474 <dl class="params"><dt>Parameters</dt><dd>
475   <table class="params">
476     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
477     <tr><td class="paramname">in_base</td><td>0-31 First pin to use as input </td></tr>
478   </table>
479   </dd>
480 </dl>
481
482 </div>
483 </div>
484 <a id="gaed7a6e7dc4f1979c7c62e4773df8c79b" name="gaed7a6e7dc4f1979c7c62e4773df8c79b"></a>
485 <h2 class="memtitle"><span class="permalink"><a href="#gaed7a6e7dc4f1979c7c62e4773df8c79b">&#9670;&nbsp;</a></span>sm_config_set_in_shift()</h2>
486
487 <div class="memitem">
488 <div class="memproto">
489 <table class="mlabels">
490   <tr>
491   <td class="mlabels-left">
492       <table class="memname">
493         <tr>
494           <td class="memname">static void sm_config_set_in_shift </td>
495           <td>(</td>
496           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
497           <td class="paramname"><em>c</em>, </td>
498         </tr>
499         <tr>
500           <td class="paramkey"></td>
501           <td></td>
502           <td class="paramtype">bool&#160;</td>
503           <td class="paramname"><em>shift_right</em>, </td>
504         </tr>
505         <tr>
506           <td class="paramkey"></td>
507           <td></td>
508           <td class="paramtype">bool&#160;</td>
509           <td class="paramname"><em>autopush</em>, </td>
510         </tr>
511         <tr>
512           <td class="paramkey"></td>
513           <td></td>
514           <td class="paramtype">uint&#160;</td>
515           <td class="paramname"><em>push_threshold</em>&#160;</td>
516         </tr>
517         <tr>
518           <td></td>
519           <td>)</td>
520           <td></td><td></td>
521         </tr>
522       </table>
523   </td>
524   <td class="mlabels-right">
525 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
526   </tr>
527 </table>
528 </div><div class="memdoc">
529
530 <p>Setup 'in' shifting parameters in a state machine configuration. </p>
531 <dl class="params"><dt>Parameters</dt><dd>
532   <table class="params">
533     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
534     <tr><td class="paramname">shift_right</td><td>true to shift ISR to right, false to shift ISR to left </td></tr>
535     <tr><td class="paramname">autopush</td><td>whether autopush is enabled </td></tr>
536     <tr><td class="paramname">push_threshold</td><td>threshold in bits to shift in before auto/conditional re-pushing of the ISR </td></tr>
537   </table>
538   </dd>
539 </dl>
540
541 </div>
542 </div>
543 <a id="gaf2bfc66d6427ff92519e38dcb611133b" name="gaf2bfc66d6427ff92519e38dcb611133b"></a>
544 <h2 class="memtitle"><span class="permalink"><a href="#gaf2bfc66d6427ff92519e38dcb611133b">&#9670;&nbsp;</a></span>sm_config_set_jmp_pin()</h2>
545
546 <div class="memitem">
547 <div class="memproto">
548 <table class="mlabels">
549   <tr>
550   <td class="mlabels-left">
551       <table class="memname">
552         <tr>
553           <td class="memname">static void sm_config_set_jmp_pin </td>
554           <td>(</td>
555           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
556           <td class="paramname"><em>c</em>, </td>
557         </tr>
558         <tr>
559           <td class="paramkey"></td>
560           <td></td>
561           <td class="paramtype">uint&#160;</td>
562           <td class="paramname"><em>pin</em>&#160;</td>
563         </tr>
564         <tr>
565           <td></td>
566           <td>)</td>
567           <td></td><td></td>
568         </tr>
569       </table>
570   </td>
571   <td class="mlabels-right">
572 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
573   </tr>
574 </table>
575 </div><div class="memdoc">
576
577 <p>Set the 'jmp' pin in a state machine configuration. </p>
578 <dl class="params"><dt>Parameters</dt><dd>
579   <table class="params">
580     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
581     <tr><td class="paramname">pin</td><td>The raw GPIO pin number to use as the source for a <code>jmp pin</code> instruction </td></tr>
582   </table>
583   </dd>
584 </dl>
585
586 </div>
587 </div>
588 <a id="gacd24870944ce2f00f3f7847bb3e5d543" name="gacd24870944ce2f00f3f7847bb3e5d543"></a>
589 <h2 class="memtitle"><span class="permalink"><a href="#gacd24870944ce2f00f3f7847bb3e5d543">&#9670;&nbsp;</a></span>sm_config_set_mov_status()</h2>
590
591 <div class="memitem">
592 <div class="memproto">
593 <table class="mlabels">
594   <tr>
595   <td class="mlabels-left">
596       <table class="memname">
597         <tr>
598           <td class="memname">static void sm_config_set_mov_status </td>
599           <td>(</td>
600           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
601           <td class="paramname"><em>c</em>, </td>
602         </tr>
603         <tr>
604           <td class="paramkey"></td>
605           <td></td>
606           <td class="paramtype">enum <a class="el" href="group__hardware__pio.html#ga356b3f4974cd31fdc4a2de381aceea5e">pio_mov_status_type</a>&#160;</td>
607           <td class="paramname"><em>status_sel</em>, </td>
608         </tr>
609         <tr>
610           <td class="paramkey"></td>
611           <td></td>
612           <td class="paramtype">uint&#160;</td>
613           <td class="paramname"><em>status_n</em>&#160;</td>
614         </tr>
615         <tr>
616           <td></td>
617           <td>)</td>
618           <td></td><td></td>
619         </tr>
620       </table>
621   </td>
622   <td class="mlabels-right">
623 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
624   </tr>
625 </table>
626 </div><div class="memdoc">
627
628 <p>Set source for 'mov status' in a state machine configuration. </p>
629 <dl class="params"><dt>Parameters</dt><dd>
630   <table class="params">
631     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
632     <tr><td class="paramname">status_sel</td><td>the status operation selector. </td></tr>
633   </table>
634   </dd>
635 </dl>
636 <dl class="section see"><dt>See also</dt><dd>enum <a class="el" href="group__hardware__pio.html#ga356b3f4974cd31fdc4a2de381aceea5e" title="MOV status types.">pio_mov_status_type</a> </dd></dl>
637 <dl class="params"><dt>Parameters</dt><dd>
638   <table class="params">
639     <tr><td class="paramname">status_n</td><td>parameter for the mov status operation (currently a bit count) </td></tr>
640   </table>
641   </dd>
642 </dl>
643
644 </div>
645 </div>
646 <a id="ga1dbca28933c083592e6e359effe250bf" name="ga1dbca28933c083592e6e359effe250bf"></a>
647 <h2 class="memtitle"><span class="permalink"><a href="#ga1dbca28933c083592e6e359effe250bf">&#9670;&nbsp;</a></span>sm_config_set_out_pin_base()</h2>
648
649 <div class="memitem">
650 <div class="memproto">
651 <table class="mlabels">
652   <tr>
653   <td class="mlabels-left">
654       <table class="memname">
655         <tr>
656           <td class="memname">static void sm_config_set_out_pin_base </td>
657           <td>(</td>
658           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
659           <td class="paramname"><em>c</em>, </td>
660         </tr>
661         <tr>
662           <td class="paramkey"></td>
663           <td></td>
664           <td class="paramtype">uint&#160;</td>
665           <td class="paramname"><em>out_base</em>&#160;</td>
666         </tr>
667         <tr>
668           <td></td>
669           <td>)</td>
670           <td></td><td></td>
671         </tr>
672       </table>
673   </td>
674   <td class="mlabels-right">
675 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
676   </tr>
677 </table>
678 </div><div class="memdoc">
679
680 <p>Set the base of the 'out' pins in a state machine configuration. </p>
681 <p >'out' pins can overlap with the 'in', 'set' and 'sideset' pins</p>
682 <dl class="params"><dt>Parameters</dt><dd>
683   <table class="params">
684     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
685     <tr><td class="paramname">out_base</td><td>0-31 First pin to set as output </td></tr>
686   </table>
687   </dd>
688 </dl>
689
690 </div>
691 </div>
692 <a id="gade3d072e319fc7d10bec180a9692ea89" name="gade3d072e319fc7d10bec180a9692ea89"></a>
693 <h2 class="memtitle"><span class="permalink"><a href="#gade3d072e319fc7d10bec180a9692ea89">&#9670;&nbsp;</a></span>sm_config_set_out_pin_count()</h2>
694
695 <div class="memitem">
696 <div class="memproto">
697 <table class="mlabels">
698   <tr>
699   <td class="mlabels-left">
700       <table class="memname">
701         <tr>
702           <td class="memname">static void sm_config_set_out_pin_count </td>
703           <td>(</td>
704           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
705           <td class="paramname"><em>c</em>, </td>
706         </tr>
707         <tr>
708           <td class="paramkey"></td>
709           <td></td>
710           <td class="paramtype">uint&#160;</td>
711           <td class="paramname"><em>out_count</em>&#160;</td>
712         </tr>
713         <tr>
714           <td></td>
715           <td>)</td>
716           <td></td><td></td>
717         </tr>
718       </table>
719   </td>
720   <td class="mlabels-right">
721 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
722   </tr>
723 </table>
724 </div><div class="memdoc">
725
726 <p>Set the number of 'out' pins in a state machine configuration. </p>
727 <p >'out' pins can overlap with the 'in', 'set' and 'sideset' pins</p>
728 <dl class="params"><dt>Parameters</dt><dd>
729   <table class="params">
730     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
731     <tr><td class="paramname">out_count</td><td>0-32 Number of pins to set. </td></tr>
732   </table>
733   </dd>
734 </dl>
735
736 </div>
737 </div>
738 <a id="gaf3004bbd996443d0c841664ebc92905c" name="gaf3004bbd996443d0c841664ebc92905c"></a>
739 <h2 class="memtitle"><span class="permalink"><a href="#gaf3004bbd996443d0c841664ebc92905c">&#9670;&nbsp;</a></span>sm_config_set_out_pins()</h2>
740
741 <div class="memitem">
742 <div class="memproto">
743 <table class="mlabels">
744   <tr>
745   <td class="mlabels-left">
746       <table class="memname">
747         <tr>
748           <td class="memname">static void sm_config_set_out_pins </td>
749           <td>(</td>
750           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
751           <td class="paramname"><em>c</em>, </td>
752         </tr>
753         <tr>
754           <td class="paramkey"></td>
755           <td></td>
756           <td class="paramtype">uint&#160;</td>
757           <td class="paramname"><em>out_base</em>, </td>
758         </tr>
759         <tr>
760           <td class="paramkey"></td>
761           <td></td>
762           <td class="paramtype">uint&#160;</td>
763           <td class="paramname"><em>out_count</em>&#160;</td>
764         </tr>
765         <tr>
766           <td></td>
767           <td>)</td>
768           <td></td><td></td>
769         </tr>
770       </table>
771   </td>
772   <td class="mlabels-right">
773 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
774   </tr>
775 </table>
776 </div><div class="memdoc">
777
778 <p>Set the 'out' pins in a state machine configuration. </p>
779 <p >'out' pins can overlap with the 'in', 'set' and 'sideset' pins</p>
780 <dl class="params"><dt>Parameters</dt><dd>
781   <table class="params">
782     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
783     <tr><td class="paramname">out_base</td><td>0-31 First pin to set as output </td></tr>
784     <tr><td class="paramname">out_count</td><td>0-32 Number of pins to set. </td></tr>
785   </table>
786   </dd>
787 </dl>
788
789 </div>
790 </div>
791 <a id="ga613bed03e10e569f1b7aede74d40a5b5" name="ga613bed03e10e569f1b7aede74d40a5b5"></a>
792 <h2 class="memtitle"><span class="permalink"><a href="#ga613bed03e10e569f1b7aede74d40a5b5">&#9670;&nbsp;</a></span>sm_config_set_out_shift()</h2>
793
794 <div class="memitem">
795 <div class="memproto">
796 <table class="mlabels">
797   <tr>
798   <td class="mlabels-left">
799       <table class="memname">
800         <tr>
801           <td class="memname">static void sm_config_set_out_shift </td>
802           <td>(</td>
803           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
804           <td class="paramname"><em>c</em>, </td>
805         </tr>
806         <tr>
807           <td class="paramkey"></td>
808           <td></td>
809           <td class="paramtype">bool&#160;</td>
810           <td class="paramname"><em>shift_right</em>, </td>
811         </tr>
812         <tr>
813           <td class="paramkey"></td>
814           <td></td>
815           <td class="paramtype">bool&#160;</td>
816           <td class="paramname"><em>autopull</em>, </td>
817         </tr>
818         <tr>
819           <td class="paramkey"></td>
820           <td></td>
821           <td class="paramtype">uint&#160;</td>
822           <td class="paramname"><em>pull_threshold</em>&#160;</td>
823         </tr>
824         <tr>
825           <td></td>
826           <td>)</td>
827           <td></td><td></td>
828         </tr>
829       </table>
830   </td>
831   <td class="mlabels-right">
832 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
833   </tr>
834 </table>
835 </div><div class="memdoc">
836
837 <p>Setup 'out' shifting parameters in a state machine configuration. </p>
838 <dl class="params"><dt>Parameters</dt><dd>
839   <table class="params">
840     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
841     <tr><td class="paramname">shift_right</td><td>true to shift OSR to right, false to shift OSR to left </td></tr>
842     <tr><td class="paramname">autopull</td><td>whether autopull is enabled </td></tr>
843     <tr><td class="paramname">pull_threshold</td><td>threshold in bits to shift out before auto/conditional re-pulling of the OSR </td></tr>
844   </table>
845   </dd>
846 </dl>
847
848 </div>
849 </div>
850 <a id="ga8a9141ceadf9e735b1e96457865de3f6" name="ga8a9141ceadf9e735b1e96457865de3f6"></a>
851 <h2 class="memtitle"><span class="permalink"><a href="#ga8a9141ceadf9e735b1e96457865de3f6">&#9670;&nbsp;</a></span>sm_config_set_out_special()</h2>
852
853 <div class="memitem">
854 <div class="memproto">
855 <table class="mlabels">
856   <tr>
857   <td class="mlabels-left">
858       <table class="memname">
859         <tr>
860           <td class="memname">static void sm_config_set_out_special </td>
861           <td>(</td>
862           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
863           <td class="paramname"><em>c</em>, </td>
864         </tr>
865         <tr>
866           <td class="paramkey"></td>
867           <td></td>
868           <td class="paramtype">bool&#160;</td>
869           <td class="paramname"><em>sticky</em>, </td>
870         </tr>
871         <tr>
872           <td class="paramkey"></td>
873           <td></td>
874           <td class="paramtype">bool&#160;</td>
875           <td class="paramname"><em>has_enable_pin</em>, </td>
876         </tr>
877         <tr>
878           <td class="paramkey"></td>
879           <td></td>
880           <td class="paramtype">uint&#160;</td>
881           <td class="paramname"><em>enable_pin_index</em>&#160;</td>
882         </tr>
883         <tr>
884           <td></td>
885           <td>)</td>
886           <td></td><td></td>
887         </tr>
888       </table>
889   </td>
890   <td class="mlabels-right">
891 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
892   </tr>
893 </table>
894 </div><div class="memdoc">
895
896 <p>Set special 'out' operations in a state machine configuration. </p>
897 <dl class="params"><dt>Parameters</dt><dd>
898   <table class="params">
899     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
900     <tr><td class="paramname">sticky</td><td>to enable 'sticky' output (i.e. re-asserting most recent OUT/SET pin values on subsequent cycles) </td></tr>
901     <tr><td class="paramname">has_enable_pin</td><td>true to enable auxiliary OUT enable pin </td></tr>
902     <tr><td class="paramname">enable_pin_index</td><td>pin index for auxiliary OUT enable </td></tr>
903   </table>
904   </dd>
905 </dl>
906
907 </div>
908 </div>
909 <a id="ga40d4807c0665d30ceab153b7444560eb" name="ga40d4807c0665d30ceab153b7444560eb"></a>
910 <h2 class="memtitle"><span class="permalink"><a href="#ga40d4807c0665d30ceab153b7444560eb">&#9670;&nbsp;</a></span>sm_config_set_set_pin_base()</h2>
911
912 <div class="memitem">
913 <div class="memproto">
914 <table class="mlabels">
915   <tr>
916   <td class="mlabels-left">
917       <table class="memname">
918         <tr>
919           <td class="memname">static void sm_config_set_set_pin_base </td>
920           <td>(</td>
921           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
922           <td class="paramname"><em>c</em>, </td>
923         </tr>
924         <tr>
925           <td class="paramkey"></td>
926           <td></td>
927           <td class="paramtype">uint&#160;</td>
928           <td class="paramname"><em>set_base</em>&#160;</td>
929         </tr>
930         <tr>
931           <td></td>
932           <td>)</td>
933           <td></td><td></td>
934         </tr>
935       </table>
936   </td>
937   <td class="mlabels-right">
938 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
939   </tr>
940 </table>
941 </div><div class="memdoc">
942
943 <p>Set the base of the 'set' pins in a state machine configuration. </p>
944 <p >'set' pins can overlap with the 'in', 'out' and 'sideset' pins</p>
945 <dl class="params"><dt>Parameters</dt><dd>
946   <table class="params">
947     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
948     <tr><td class="paramname">set_base</td><td>0-31 First pin to set as </td></tr>
949   </table>
950   </dd>
951 </dl>
952
953 </div>
954 </div>
955 <a id="ga78e129fe383f2af0fc5e1448dea4c3d6" name="ga78e129fe383f2af0fc5e1448dea4c3d6"></a>
956 <h2 class="memtitle"><span class="permalink"><a href="#ga78e129fe383f2af0fc5e1448dea4c3d6">&#9670;&nbsp;</a></span>sm_config_set_set_pin_count()</h2>
957
958 <div class="memitem">
959 <div class="memproto">
960 <table class="mlabels">
961   <tr>
962   <td class="mlabels-left">
963       <table class="memname">
964         <tr>
965           <td class="memname">static void sm_config_set_set_pin_count </td>
966           <td>(</td>
967           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
968           <td class="paramname"><em>c</em>, </td>
969         </tr>
970         <tr>
971           <td class="paramkey"></td>
972           <td></td>
973           <td class="paramtype">uint&#160;</td>
974           <td class="paramname"><em>set_count</em>&#160;</td>
975         </tr>
976         <tr>
977           <td></td>
978           <td>)</td>
979           <td></td><td></td>
980         </tr>
981       </table>
982   </td>
983   <td class="mlabels-right">
984 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
985   </tr>
986 </table>
987 </div><div class="memdoc">
988
989 <p>Set the count of 'set' pins in a state machine configuration. </p>
990 <p >'set' pins can overlap with the 'in', 'out' and 'sideset' pins</p>
991 <dl class="params"><dt>Parameters</dt><dd>
992   <table class="params">
993     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
994     <tr><td class="paramname">set_count</td><td>0-5 Number of pins to set. </td></tr>
995   </table>
996   </dd>
997 </dl>
998
999 </div>
1000 </div>
1001 <a id="gada1dff2c00b7d3a1cf722880c8373424" name="gada1dff2c00b7d3a1cf722880c8373424"></a>
1002 <h2 class="memtitle"><span class="permalink"><a href="#gada1dff2c00b7d3a1cf722880c8373424">&#9670;&nbsp;</a></span>sm_config_set_set_pins()</h2>
1003
1004 <div class="memitem">
1005 <div class="memproto">
1006 <table class="mlabels">
1007   <tr>
1008   <td class="mlabels-left">
1009       <table class="memname">
1010         <tr>
1011           <td class="memname">static void sm_config_set_set_pins </td>
1012           <td>(</td>
1013           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
1014           <td class="paramname"><em>c</em>, </td>
1015         </tr>
1016         <tr>
1017           <td class="paramkey"></td>
1018           <td></td>
1019           <td class="paramtype">uint&#160;</td>
1020           <td class="paramname"><em>set_base</em>, </td>
1021         </tr>
1022         <tr>
1023           <td class="paramkey"></td>
1024           <td></td>
1025           <td class="paramtype">uint&#160;</td>
1026           <td class="paramname"><em>set_count</em>&#160;</td>
1027         </tr>
1028         <tr>
1029           <td></td>
1030           <td>)</td>
1031           <td></td><td></td>
1032         </tr>
1033       </table>
1034   </td>
1035   <td class="mlabels-right">
1036 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1037   </tr>
1038 </table>
1039 </div><div class="memdoc">
1040
1041 <p>Set the 'set' pins in a state machine configuration. </p>
1042 <p >'set' pins can overlap with the 'in', 'out' and 'sideset' pins</p>
1043 <dl class="params"><dt>Parameters</dt><dd>
1044   <table class="params">
1045     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
1046     <tr><td class="paramname">set_base</td><td>0-31 First pin to set as </td></tr>
1047     <tr><td class="paramname">set_count</td><td>0-5 Number of pins to set. </td></tr>
1048   </table>
1049   </dd>
1050 </dl>
1051
1052 </div>
1053 </div>
1054 <a id="gaf543422206a8dbdc2efea85818dd650e" name="gaf543422206a8dbdc2efea85818dd650e"></a>
1055 <h2 class="memtitle"><span class="permalink"><a href="#gaf543422206a8dbdc2efea85818dd650e">&#9670;&nbsp;</a></span>sm_config_set_sideset()</h2>
1056
1057 <div class="memitem">
1058 <div class="memproto">
1059 <table class="mlabels">
1060   <tr>
1061   <td class="mlabels-left">
1062       <table class="memname">
1063         <tr>
1064           <td class="memname">static void sm_config_set_sideset </td>
1065           <td>(</td>
1066           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
1067           <td class="paramname"><em>c</em>, </td>
1068         </tr>
1069         <tr>
1070           <td class="paramkey"></td>
1071           <td></td>
1072           <td class="paramtype">uint&#160;</td>
1073           <td class="paramname"><em>bit_count</em>, </td>
1074         </tr>
1075         <tr>
1076           <td class="paramkey"></td>
1077           <td></td>
1078           <td class="paramtype">bool&#160;</td>
1079           <td class="paramname"><em>optional</em>, </td>
1080         </tr>
1081         <tr>
1082           <td class="paramkey"></td>
1083           <td></td>
1084           <td class="paramtype">bool&#160;</td>
1085           <td class="paramname"><em>pindirs</em>&#160;</td>
1086         </tr>
1087         <tr>
1088           <td></td>
1089           <td>)</td>
1090           <td></td><td></td>
1091         </tr>
1092       </table>
1093   </td>
1094   <td class="mlabels-right">
1095 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1096   </tr>
1097 </table>
1098 </div><div class="memdoc">
1099
1100 <p>Set the 'sideset' options in a state machine configuration. </p>
1101 <dl class="params"><dt>Parameters</dt><dd>
1102   <table class="params">
1103     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
1104     <tr><td class="paramname">bit_count</td><td>Number of bits to steal from delay field in the instruction for use of side set (max 5) </td></tr>
1105     <tr><td class="paramname">optional</td><td>True if the topmost side set bit is used as a flag for whether to apply side set on that instruction </td></tr>
1106     <tr><td class="paramname">pindirs</td><td>True if the side set affects pin directions rather than values </td></tr>
1107   </table>
1108   </dd>
1109 </dl>
1110
1111 </div>
1112 </div>
1113 <a id="ga7abfda1f60c62565d5b13536b0605af7" name="ga7abfda1f60c62565d5b13536b0605af7"></a>
1114 <h2 class="memtitle"><span class="permalink"><a href="#ga7abfda1f60c62565d5b13536b0605af7">&#9670;&nbsp;</a></span>sm_config_set_sideset_pin_base()</h2>
1115
1116 <div class="memitem">
1117 <div class="memproto">
1118 <table class="mlabels">
1119   <tr>
1120   <td class="mlabels-left">
1121       <table class="memname">
1122         <tr>
1123           <td class="memname">static void sm_config_set_sideset_pin_base </td>
1124           <td>(</td>
1125           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
1126           <td class="paramname"><em>c</em>, </td>
1127         </tr>
1128         <tr>
1129           <td class="paramkey"></td>
1130           <td></td>
1131           <td class="paramtype">uint&#160;</td>
1132           <td class="paramname"><em>sideset_base</em>&#160;</td>
1133         </tr>
1134         <tr>
1135           <td></td>
1136           <td>)</td>
1137           <td></td><td></td>
1138         </tr>
1139       </table>
1140   </td>
1141   <td class="mlabels-right">
1142 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1143   </tr>
1144 </table>
1145 </div><div class="memdoc">
1146
1147 <p>Set the base of the 'sideset' pins in a state machine configuration. </p>
1148 <p >'sideset' pins can overlap with the 'in', 'out' and 'set' pins</p>
1149 <dl class="params"><dt>Parameters</dt><dd>
1150   <table class="params">
1151     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
1152     <tr><td class="paramname">sideset_base</td><td>0-31 base pin for 'side set' </td></tr>
1153   </table>
1154   </dd>
1155 </dl>
1156
1157 </div>
1158 </div>
1159 <a id="gad55bf8b410fa1d13bd1bd020587e01d7" name="gad55bf8b410fa1d13bd1bd020587e01d7"></a>
1160 <h2 class="memtitle"><span class="permalink"><a href="#gad55bf8b410fa1d13bd1bd020587e01d7">&#9670;&nbsp;</a></span>sm_config_set_sideset_pins()</h2>
1161
1162 <div class="memitem">
1163 <div class="memproto">
1164 <table class="mlabels">
1165   <tr>
1166   <td class="mlabels-left">
1167       <table class="memname">
1168         <tr>
1169           <td class="memname">static void sm_config_set_sideset_pins </td>
1170           <td>(</td>
1171           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
1172           <td class="paramname"><em>c</em>, </td>
1173         </tr>
1174         <tr>
1175           <td class="paramkey"></td>
1176           <td></td>
1177           <td class="paramtype">uint&#160;</td>
1178           <td class="paramname"><em>sideset_base</em>&#160;</td>
1179         </tr>
1180         <tr>
1181           <td></td>
1182           <td>)</td>
1183           <td></td><td></td>
1184         </tr>
1185       </table>
1186   </td>
1187   <td class="mlabels-right">
1188 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1189   </tr>
1190 </table>
1191 </div><div class="memdoc">
1192
1193 <p>Set the 'sideset' pins in a state machine configuration. </p>
1194 <p >This method is identical to <a class="el" href="group__sm__config.html#ga7abfda1f60c62565d5b13536b0605af7">sm_config_set_sideset_pin_base</a>, and is provided for backwards compatibility</p>
1195 <p >'sideset' pins can overlap with the 'in', 'out' and 'set' pins</p>
1196 <dl class="params"><dt>Parameters</dt><dd>
1197   <table class="params">
1198     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
1199     <tr><td class="paramname">sideset_base</td><td>0-31 base pin for 'side set' </td></tr>
1200   </table>
1201   </dd>
1202 </dl>
1203
1204 </div>
1205 </div>
1206 <a id="gafb753e8b35bbea9209ca4399a845f89c" name="gafb753e8b35bbea9209ca4399a845f89c"></a>
1207 <h2 class="memtitle"><span class="permalink"><a href="#gafb753e8b35bbea9209ca4399a845f89c">&#9670;&nbsp;</a></span>sm_config_set_wrap()</h2>
1208
1209 <div class="memitem">
1210 <div class="memproto">
1211 <table class="mlabels">
1212   <tr>
1213   <td class="mlabels-left">
1214       <table class="memname">
1215         <tr>
1216           <td class="memname">static void sm_config_set_wrap </td>
1217           <td>(</td>
1218           <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
1219           <td class="paramname"><em>c</em>, </td>
1220         </tr>
1221         <tr>
1222           <td class="paramkey"></td>
1223           <td></td>
1224           <td class="paramtype">uint&#160;</td>
1225           <td class="paramname"><em>wrap_target</em>, </td>
1226         </tr>
1227         <tr>
1228           <td class="paramkey"></td>
1229           <td></td>
1230           <td class="paramtype">uint&#160;</td>
1231           <td class="paramname"><em>wrap</em>&#160;</td>
1232         </tr>
1233         <tr>
1234           <td></td>
1235           <td>)</td>
1236           <td></td><td></td>
1237         </tr>
1238       </table>
1239   </td>
1240   <td class="mlabels-right">
1241 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1242   </tr>
1243 </table>
1244 </div><div class="memdoc">
1245
1246 <p>Set the wrap addresses in a state machine configuration. </p>
1247 <dl class="params"><dt>Parameters</dt><dd>
1248   <table class="params">
1249     <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
1250     <tr><td class="paramname">wrap_target</td><td>the instruction memory address to wrap to </td></tr>
1251     <tr><td class="paramname">wrap</td><td>the instruction memory address after which to set the program counter to wrap_target if the instruction does not itself update the program_counter </td></tr>
1252   </table>
1253   </dd>
1254 </dl>
1255
1256 </div>
1257 </div>
1258 </div><!-- contents -->
1259 </div><!-- doc-content -->
1260
1261         <script src="main.js"></script>
1262 </body>
1263 </html>
This page took 0.102732 seconds and 4 git commands to generate.