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">
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: interp_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"/>
27 <div class="navigation-mobile">
28 <div class="logo--mobile">
29 <a href="/"><img src="logo-mobile.svg" alt="Raspberry Pi"></a>
31 <div class="navigation-toggle">
32 <span class="line-1"></span>
36 <span class="line-3"></span>
39 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
41 <a href="index.html"> <img src="logo.svg" alt="Raspberry Pi"></a>
42 <span style="display: inline-block; margin-top: 10px;">
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>
50 <!-- <div class="search">
52 <input type="search" name="search" id="search" placeholder="Search">
53 <input type="submit" value="Search">
56 <!-- Generated by Doxygen 1.9.4 -->
57 <script type="text/javascript">
58 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
59 var searchBox = new SearchBox("searchBox", "search",'Search','.html');
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&dn=expat.txt MIT */
67 initMenu('',true,false,'search.php','Search');
68 $(document).ready(function() { init_search(); });
72 <div id="main-nav"></div>
74 <div id="side-nav" class="ui-resizable side-nav-resizable">
76 <div id="nav-tree-contents">
77 <div id="nav-sync" class="sync"></div>
80 <div id="splitbar" style="-moz-user-select:none;"
81 class="ui-resizable-handle">
84 <script type="text/javascript">
85 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
86 $(document).ready(function(){initNavTree('group__interp__config.html',''); initResizable(); });
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)">
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">
105 <div class="summary">
106 <a href="#func-members">Functions</a> </div>
107 <div class="headertitle"><div class="title">interp_config<div class="ingroups"><a class="el" href="group__hardware.html">Hardware APIs</a> » <a class="el" href="group__hardware__interp.html">hardware_interp</a></div></div></div>
109 <div class="contents">
111 <p>Interpolator configuration.
112 <a href="#details">More...</a></p>
113 <table class="memberdecls">
114 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
115 Functions</h2></td></tr>
116 <tr class="memitem:ga30d763b581c679c02cefe2fa90d8c8a7"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__interp__config.html#ga30d763b581c679c02cefe2fa90d8c8a7">interp_config_set_shift</a> (<a class="el" href="structinterp__config.html">interp_config</a> *c, uint shift)</td></tr>
117 <tr class="memdesc:ga30d763b581c679c02cefe2fa90d8c8a7"><td class="mdescLeft"> </td><td class="mdescRight">Set the interpolator shift value. <a href="group__interp__config.html#ga30d763b581c679c02cefe2fa90d8c8a7">More...</a><br /></td></tr>
118 <tr class="separator:ga30d763b581c679c02cefe2fa90d8c8a7"><td class="memSeparator" colspan="2"> </td></tr>
119 <tr class="memitem:ga32f22fb5240d4b53a62a0dfcb838b56d"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__interp__config.html#ga32f22fb5240d4b53a62a0dfcb838b56d">interp_config_set_mask</a> (<a class="el" href="structinterp__config.html">interp_config</a> *c, uint mask_lsb, uint mask_msb)</td></tr>
120 <tr class="memdesc:ga32f22fb5240d4b53a62a0dfcb838b56d"><td class="mdescLeft"> </td><td class="mdescRight">Set the interpolator mask range. <a href="group__interp__config.html#ga32f22fb5240d4b53a62a0dfcb838b56d">More...</a><br /></td></tr>
121 <tr class="separator:ga32f22fb5240d4b53a62a0dfcb838b56d"><td class="memSeparator" colspan="2"> </td></tr>
122 <tr class="memitem:gaeb64e0515ebeabd2fdd4c64712c6e3f9"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__interp__config.html#gaeb64e0515ebeabd2fdd4c64712c6e3f9">interp_config_set_cross_input</a> (<a class="el" href="structinterp__config.html">interp_config</a> *c, bool cross_input)</td></tr>
123 <tr class="memdesc:gaeb64e0515ebeabd2fdd4c64712c6e3f9"><td class="mdescLeft"> </td><td class="mdescRight">Enable cross input. <a href="group__interp__config.html#gaeb64e0515ebeabd2fdd4c64712c6e3f9">More...</a><br /></td></tr>
124 <tr class="separator:gaeb64e0515ebeabd2fdd4c64712c6e3f9"><td class="memSeparator" colspan="2"> </td></tr>
125 <tr class="memitem:gadfdf4d9fff3f9a2154645f71ca47ddb1"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__interp__config.html#gadfdf4d9fff3f9a2154645f71ca47ddb1">interp_config_set_cross_result</a> (<a class="el" href="structinterp__config.html">interp_config</a> *c, bool cross_result)</td></tr>
126 <tr class="memdesc:gadfdf4d9fff3f9a2154645f71ca47ddb1"><td class="mdescLeft"> </td><td class="mdescRight">Enable cross results. <a href="group__interp__config.html#gadfdf4d9fff3f9a2154645f71ca47ddb1">More...</a><br /></td></tr>
127 <tr class="separator:gadfdf4d9fff3f9a2154645f71ca47ddb1"><td class="memSeparator" colspan="2"> </td></tr>
128 <tr class="memitem:gaba828dabbf74d63c7d0677411840e8ea"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__interp__config.html#gaba828dabbf74d63c7d0677411840e8ea">interp_config_set_signed</a> (<a class="el" href="structinterp__config.html">interp_config</a> *c, bool _signed)</td></tr>
129 <tr class="memdesc:gaba828dabbf74d63c7d0677411840e8ea"><td class="mdescLeft"> </td><td class="mdescRight">Set sign extension. <a href="group__interp__config.html#gaba828dabbf74d63c7d0677411840e8ea">More...</a><br /></td></tr>
130 <tr class="separator:gaba828dabbf74d63c7d0677411840e8ea"><td class="memSeparator" colspan="2"> </td></tr>
131 <tr class="memitem:ga881f960275b1e17ff004103640bc0258"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__interp__config.html#ga881f960275b1e17ff004103640bc0258">interp_config_set_add_raw</a> (<a class="el" href="structinterp__config.html">interp_config</a> *c, bool add_raw)</td></tr>
132 <tr class="memdesc:ga881f960275b1e17ff004103640bc0258"><td class="mdescLeft"> </td><td class="mdescRight">Set raw add option. <a href="group__interp__config.html#ga881f960275b1e17ff004103640bc0258">More...</a><br /></td></tr>
133 <tr class="separator:ga881f960275b1e17ff004103640bc0258"><td class="memSeparator" colspan="2"> </td></tr>
134 <tr class="memitem:ga494025486e3c301b46f241852dc7af46"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__interp__config.html#ga494025486e3c301b46f241852dc7af46">interp_config_set_blend</a> (<a class="el" href="structinterp__config.html">interp_config</a> *c, bool blend)</td></tr>
135 <tr class="memdesc:ga494025486e3c301b46f241852dc7af46"><td class="mdescLeft"> </td><td class="mdescRight">Set blend mode. <a href="group__interp__config.html#ga494025486e3c301b46f241852dc7af46">More...</a><br /></td></tr>
136 <tr class="separator:ga494025486e3c301b46f241852dc7af46"><td class="memSeparator" colspan="2"> </td></tr>
137 <tr class="memitem:ga0e94b2b16fb356cfa09703bb0bd0285e"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__interp__config.html#ga0e94b2b16fb356cfa09703bb0bd0285e">interp_config_set_clamp</a> (<a class="el" href="structinterp__config.html">interp_config</a> *c, bool clamp)</td></tr>
138 <tr class="memdesc:ga0e94b2b16fb356cfa09703bb0bd0285e"><td class="mdescLeft"> </td><td class="mdescRight">Set interpolator clamp mode (Interpolator 1 only) <a href="group__interp__config.html#ga0e94b2b16fb356cfa09703bb0bd0285e">More...</a><br /></td></tr>
139 <tr class="separator:ga0e94b2b16fb356cfa09703bb0bd0285e"><td class="memSeparator" colspan="2"> </td></tr>
140 <tr class="memitem:ga1f8df0132623c69cffd0e66e1b679fae"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__interp__config.html#ga1f8df0132623c69cffd0e66e1b679fae">interp_config_set_force_bits</a> (<a class="el" href="structinterp__config.html">interp_config</a> *c, uint bits)</td></tr>
141 <tr class="memdesc:ga1f8df0132623c69cffd0e66e1b679fae"><td class="mdescLeft"> </td><td class="mdescRight">Set interpolator Force bits. <a href="group__interp__config.html#ga1f8df0132623c69cffd0e66e1b679fae">More...</a><br /></td></tr>
142 <tr class="separator:ga1f8df0132623c69cffd0e66e1b679fae"><td class="memSeparator" colspan="2"> </td></tr>
143 <tr class="memitem:ga171e5080ebbdf84745bd5c6a4fada90e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structinterp__config.html">interp_config</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__interp__config.html#ga171e5080ebbdf84745bd5c6a4fada90e">interp_default_config</a> (void)</td></tr>
144 <tr class="memdesc:ga171e5080ebbdf84745bd5c6a4fada90e"><td class="mdescLeft"> </td><td class="mdescRight">Get a default configuration. <a href="group__interp__config.html#ga171e5080ebbdf84745bd5c6a4fada90e">More...</a><br /></td></tr>
145 <tr class="separator:ga171e5080ebbdf84745bd5c6a4fada90e"><td class="memSeparator" colspan="2"> </td></tr>
146 <tr class="memitem:gace3f9a4de8e142d76cd54a54ad67a296"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__interp__config.html#gace3f9a4de8e142d76cd54a54ad67a296">interp_set_config</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, uint lane, <a class="el" href="structinterp__config.html">interp_config</a> *config)</td></tr>
147 <tr class="memdesc:gace3f9a4de8e142d76cd54a54ad67a296"><td class="mdescLeft"> </td><td class="mdescRight">Send configuration to a lane. <a href="group__interp__config.html#gace3f9a4de8e142d76cd54a54ad67a296">More...</a><br /></td></tr>
148 <tr class="separator:gace3f9a4de8e142d76cd54a54ad67a296"><td class="memSeparator" colspan="2"> </td></tr>
150 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
151 <p >Interpolator configuration. </p>
152 <p >Each interpolator needs to be configured, these functions provide handy helpers to set up configuration structures. </p>
153 <h2 class="groupheader">Function Documentation</h2>
154 <a id="ga881f960275b1e17ff004103640bc0258" name="ga881f960275b1e17ff004103640bc0258"></a>
155 <h2 class="memtitle"><span class="permalink"><a href="#ga881f960275b1e17ff004103640bc0258">◆ </a></span>interp_config_set_add_raw()</h2>
157 <div class="memitem">
158 <div class="memproto">
159 <table class="mlabels">
161 <td class="mlabels-left">
162 <table class="memname">
164 <td class="memname">static void interp_config_set_add_raw </td>
166 <td class="paramtype"><a class="el" href="structinterp__config.html">interp_config</a> * </td>
167 <td class="paramname"><em>c</em>, </td>
170 <td class="paramkey"></td>
172 <td class="paramtype">bool </td>
173 <td class="paramname"><em>add_raw</em> </td>
182 <td class="mlabels-right">
183 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
186 </div><div class="memdoc">
188 <p>Set raw add option. </p>
189 <p >When enabled, mask + shift is bypassed for LANE0 result. This does not affect the FULL result.</p>
190 <dl class="params"><dt>Parameters</dt><dd>
191 <table class="params">
192 <tr><td class="paramname">c</td><td>Pointer to interpolation config </td></tr>
193 <tr><td class="paramname">add_raw</td><td>If true, enable raw add option. </td></tr>
200 <a id="ga494025486e3c301b46f241852dc7af46" name="ga494025486e3c301b46f241852dc7af46"></a>
201 <h2 class="memtitle"><span class="permalink"><a href="#ga494025486e3c301b46f241852dc7af46">◆ </a></span>interp_config_set_blend()</h2>
203 <div class="memitem">
204 <div class="memproto">
205 <table class="mlabels">
207 <td class="mlabels-left">
208 <table class="memname">
210 <td class="memname">static void interp_config_set_blend </td>
212 <td class="paramtype"><a class="el" href="structinterp__config.html">interp_config</a> * </td>
213 <td class="paramname"><em>c</em>, </td>
216 <td class="paramkey"></td>
218 <td class="paramtype">bool </td>
219 <td class="paramname"><em>blend</em> </td>
228 <td class="mlabels-right">
229 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
232 </div><div class="memdoc">
234 <p>Set blend mode. </p>
235 <p >If enabled, LANE1 result is a linear interpolation between BASE0 and BASE1, controlled by the 8 LSBs of lane 1 shift and mask value (a fractional number between 0 and 255/256ths)</p>
236 <p >LANE0 result does not have BASE0 added (yields only the 8 LSBs of lane 1 shift+mask value)</p>
237 <p >FULL result does not have lane 1 shift+mask value added (BASE2 + lane 0 shift+mask)</p>
238 <p >LANE1 SIGNED flag controls whether the interpolation is signed or unsig</p>
239 <dl class="params"><dt>Parameters</dt><dd>
240 <table class="params">
241 <tr><td class="paramname">c</td><td>Pointer to interpolation config </td></tr>
242 <tr><td class="paramname">blend</td><td>Set true to enable blend mode. </td></tr>
249 <a id="ga0e94b2b16fb356cfa09703bb0bd0285e" name="ga0e94b2b16fb356cfa09703bb0bd0285e"></a>
250 <h2 class="memtitle"><span class="permalink"><a href="#ga0e94b2b16fb356cfa09703bb0bd0285e">◆ </a></span>interp_config_set_clamp()</h2>
252 <div class="memitem">
253 <div class="memproto">
254 <table class="mlabels">
256 <td class="mlabels-left">
257 <table class="memname">
259 <td class="memname">static void interp_config_set_clamp </td>
261 <td class="paramtype"><a class="el" href="structinterp__config.html">interp_config</a> * </td>
262 <td class="paramname"><em>c</em>, </td>
265 <td class="paramkey"></td>
267 <td class="paramtype">bool </td>
268 <td class="paramname"><em>clamp</em> </td>
277 <td class="mlabels-right">
278 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
281 </div><div class="memdoc">
283 <p>Set interpolator clamp mode (Interpolator 1 only) </p>
284 <p >Only present on INTERP1 on each core. If CLAMP mode is enabled:</p><ul>
285 <li>LANE0 result is a shifted and masked ACCUM0, clamped by a lower bound of BASE0 and an upper bound of BASE1.</li>
286 <li>Signedness of these comparisons is determined by LANE0_CTRL_SIGNED</li>
288 <dl class="params"><dt>Parameters</dt><dd>
289 <table class="params">
290 <tr><td class="paramname">c</td><td>Pointer to interpolation config </td></tr>
291 <tr><td class="paramname">clamp</td><td>Set true to enable clamp mode </td></tr>
298 <a id="gaeb64e0515ebeabd2fdd4c64712c6e3f9" name="gaeb64e0515ebeabd2fdd4c64712c6e3f9"></a>
299 <h2 class="memtitle"><span class="permalink"><a href="#gaeb64e0515ebeabd2fdd4c64712c6e3f9">◆ </a></span>interp_config_set_cross_input()</h2>
301 <div class="memitem">
302 <div class="memproto">
303 <table class="mlabels">
305 <td class="mlabels-left">
306 <table class="memname">
308 <td class="memname">static void interp_config_set_cross_input </td>
310 <td class="paramtype"><a class="el" href="structinterp__config.html">interp_config</a> * </td>
311 <td class="paramname"><em>c</em>, </td>
314 <td class="paramkey"></td>
316 <td class="paramtype">bool </td>
317 <td class="paramname"><em>cross_input</em> </td>
326 <td class="mlabels-right">
327 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
330 </div><div class="memdoc">
332 <p>Enable cross input. </p>
333 <p >Allows feeding of the accumulator content from the other lane back in to this lanes shift+mask hardware. This will take effect even if the interp_config_set_add_raw option is set as the cross input mux is before the shift+mask bypass</p>
334 <dl class="params"><dt>Parameters</dt><dd>
335 <table class="params">
336 <tr><td class="paramname">c</td><td>Pointer to interpolation config </td></tr>
337 <tr><td class="paramname">cross_input</td><td>If true, enable the cross input. </td></tr>
344 <a id="gadfdf4d9fff3f9a2154645f71ca47ddb1" name="gadfdf4d9fff3f9a2154645f71ca47ddb1"></a>
345 <h2 class="memtitle"><span class="permalink"><a href="#gadfdf4d9fff3f9a2154645f71ca47ddb1">◆ </a></span>interp_config_set_cross_result()</h2>
347 <div class="memitem">
348 <div class="memproto">
349 <table class="mlabels">
351 <td class="mlabels-left">
352 <table class="memname">
354 <td class="memname">static void interp_config_set_cross_result </td>
356 <td class="paramtype"><a class="el" href="structinterp__config.html">interp_config</a> * </td>
357 <td class="paramname"><em>c</em>, </td>
360 <td class="paramkey"></td>
362 <td class="paramtype">bool </td>
363 <td class="paramname"><em>cross_result</em> </td>
372 <td class="mlabels-right">
373 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
376 </div><div class="memdoc">
378 <p>Enable cross results. </p>
379 <p >Allows feeding of the other lane’s result into this lane’s accumulator on a POP operation.</p>
380 <dl class="params"><dt>Parameters</dt><dd>
381 <table class="params">
382 <tr><td class="paramname">c</td><td>Pointer to interpolation config </td></tr>
383 <tr><td class="paramname">cross_result</td><td>If true, enables the cross result </td></tr>
390 <a id="ga1f8df0132623c69cffd0e66e1b679fae" name="ga1f8df0132623c69cffd0e66e1b679fae"></a>
391 <h2 class="memtitle"><span class="permalink"><a href="#ga1f8df0132623c69cffd0e66e1b679fae">◆ </a></span>interp_config_set_force_bits()</h2>
393 <div class="memitem">
394 <div class="memproto">
395 <table class="mlabels">
397 <td class="mlabels-left">
398 <table class="memname">
400 <td class="memname">static void interp_config_set_force_bits </td>
402 <td class="paramtype"><a class="el" href="structinterp__config.html">interp_config</a> * </td>
403 <td class="paramname"><em>c</em>, </td>
406 <td class="paramkey"></td>
408 <td class="paramtype">uint </td>
409 <td class="paramname"><em>bits</em> </td>
418 <td class="mlabels-right">
419 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
422 </div><div class="memdoc">
424 <p>Set interpolator Force bits. </p>
425 <p >ORed into bits 29:28 of the lane result presented to the processor on the bus.</p>
426 <p >No effect on the internal 32-bit datapath. Handy for using a lane to generate sequence of pointers into flash or SRAM</p>
427 <dl class="params"><dt>Parameters</dt><dd>
428 <table class="params">
429 <tr><td class="paramname">c</td><td>Pointer to interpolation config </td></tr>
430 <tr><td class="paramname">bits</td><td>Sets the force bits to that specified. Range 0-3 (two bits) </td></tr>
437 <a id="ga32f22fb5240d4b53a62a0dfcb838b56d" name="ga32f22fb5240d4b53a62a0dfcb838b56d"></a>
438 <h2 class="memtitle"><span class="permalink"><a href="#ga32f22fb5240d4b53a62a0dfcb838b56d">◆ </a></span>interp_config_set_mask()</h2>
440 <div class="memitem">
441 <div class="memproto">
442 <table class="mlabels">
444 <td class="mlabels-left">
445 <table class="memname">
447 <td class="memname">static void interp_config_set_mask </td>
449 <td class="paramtype"><a class="el" href="structinterp__config.html">interp_config</a> * </td>
450 <td class="paramname"><em>c</em>, </td>
453 <td class="paramkey"></td>
455 <td class="paramtype">uint </td>
456 <td class="paramname"><em>mask_lsb</em>, </td>
459 <td class="paramkey"></td>
461 <td class="paramtype">uint </td>
462 <td class="paramname"><em>mask_msb</em> </td>
471 <td class="mlabels-right">
472 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
475 </div><div class="memdoc">
477 <p>Set the interpolator mask range. </p>
478 <p >Sets the range of bits (least to most) that are allowed to pass through the interpolator</p>
479 <dl class="params"><dt>Parameters</dt><dd>
480 <table class="params">
481 <tr><td class="paramname">c</td><td>Pointer to interpolation config </td></tr>
482 <tr><td class="paramname">mask_lsb</td><td>The least significant bit allowed to pass </td></tr>
483 <tr><td class="paramname">mask_msb</td><td>The most significant bit allowed to pass </td></tr>
490 <a id="ga30d763b581c679c02cefe2fa90d8c8a7" name="ga30d763b581c679c02cefe2fa90d8c8a7"></a>
491 <h2 class="memtitle"><span class="permalink"><a href="#ga30d763b581c679c02cefe2fa90d8c8a7">◆ </a></span>interp_config_set_shift()</h2>
493 <div class="memitem">
494 <div class="memproto">
495 <table class="mlabels">
497 <td class="mlabels-left">
498 <table class="memname">
500 <td class="memname">static void interp_config_set_shift </td>
502 <td class="paramtype"><a class="el" href="structinterp__config.html">interp_config</a> * </td>
503 <td class="paramname"><em>c</em>, </td>
506 <td class="paramkey"></td>
508 <td class="paramtype">uint </td>
509 <td class="paramname"><em>shift</em> </td>
518 <td class="mlabels-right">
519 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
522 </div><div class="memdoc">
524 <p>Set the interpolator shift value. </p>
525 <p >Sets the number of bits the accumulator is shifted before masking, on each iteration.</p>
526 <dl class="params"><dt>Parameters</dt><dd>
527 <table class="params">
528 <tr><td class="paramname">c</td><td>Pointer to an interpolator config </td></tr>
529 <tr><td class="paramname">shift</td><td>Number of bits </td></tr>
536 <a id="gaba828dabbf74d63c7d0677411840e8ea" name="gaba828dabbf74d63c7d0677411840e8ea"></a>
537 <h2 class="memtitle"><span class="permalink"><a href="#gaba828dabbf74d63c7d0677411840e8ea">◆ </a></span>interp_config_set_signed()</h2>
539 <div class="memitem">
540 <div class="memproto">
541 <table class="mlabels">
543 <td class="mlabels-left">
544 <table class="memname">
546 <td class="memname">static void interp_config_set_signed </td>
548 <td class="paramtype"><a class="el" href="structinterp__config.html">interp_config</a> * </td>
549 <td class="paramname"><em>c</em>, </td>
552 <td class="paramkey"></td>
554 <td class="paramtype">bool </td>
555 <td class="paramname"><em>_signed</em> </td>
564 <td class="mlabels-right">
565 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
568 </div><div class="memdoc">
570 <p>Set sign extension. </p>
571 <p >Enables signed mode, where the shifted and masked accumulator value is sign-extended to 32 bits before adding to BASE1, and LANE1 PEEK/POP results appear extended to 32 bits when read by processor.</p>
572 <dl class="params"><dt>Parameters</dt><dd>
573 <table class="params">
574 <tr><td class="paramname">c</td><td>Pointer to interpolation config </td></tr>
575 <tr><td class="paramname">_signed</td><td>If true, enables sign extension </td></tr>
582 <a id="ga171e5080ebbdf84745bd5c6a4fada90e" name="ga171e5080ebbdf84745bd5c6a4fada90e"></a>
583 <h2 class="memtitle"><span class="permalink"><a href="#ga171e5080ebbdf84745bd5c6a4fada90e">◆ </a></span>interp_default_config()</h2>
585 <div class="memitem">
586 <div class="memproto">
587 <table class="mlabels">
589 <td class="mlabels-left">
590 <table class="memname">
592 <td class="memname">static <a class="el" href="structinterp__config.html">interp_config</a> interp_default_config </td>
594 <td class="paramtype">void </td>
595 <td class="paramname"></td><td>)</td>
600 <td class="mlabels-right">
601 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
604 </div><div class="memdoc">
606 <p>Get a default configuration. </p>
607 <dl class="section return"><dt>Returns</dt><dd>A default interpolation configuration </dd></dl>
611 <a id="gace3f9a4de8e142d76cd54a54ad67a296" name="gace3f9a4de8e142d76cd54a54ad67a296"></a>
612 <h2 class="memtitle"><span class="permalink"><a href="#gace3f9a4de8e142d76cd54a54ad67a296">◆ </a></span>interp_set_config()</h2>
614 <div class="memitem">
615 <div class="memproto">
616 <table class="mlabels">
618 <td class="mlabels-left">
619 <table class="memname">
621 <td class="memname">static void interp_set_config </td>
623 <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> * </td>
624 <td class="paramname"><em>interp</em>, </td>
627 <td class="paramkey"></td>
629 <td class="paramtype">uint </td>
630 <td class="paramname"><em>lane</em>, </td>
633 <td class="paramkey"></td>
635 <td class="paramtype"><a class="el" href="structinterp__config.html">interp_config</a> * </td>
636 <td class="paramname"><em>config</em> </td>
645 <td class="mlabels-right">
646 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
649 </div><div class="memdoc">
651 <p>Send configuration to a lane. </p>
652 <p >If an invalid configuration is specified (ie a lane specific item is set on wrong lane), depending on setup this function can panic.</p>
653 <dl class="params"><dt>Parameters</dt><dd>
654 <table class="params">
655 <tr><td class="paramname">interp</td><td>Interpolator instance, interp0 or interp1. </td></tr>
656 <tr><td class="paramname">lane</td><td>The lane to set </td></tr>
657 <tr><td class="paramname">config</td><td>Pointer to interpolation config </td></tr>
664 </div><!-- contents -->
665 </div><!-- doc-content -->
667 <script src="main.js"></script>