]> Git Repo - pico-vscode.git/blob - web/docs/group__hardware__interp.html
Merge branch 'main' into main
[pico-vscode.git] / web / docs / group__hardware__interp.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: hardware_interp</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__hardware__interp.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="#groups">Modules</a> &#124;
107 <a href="#func-members">Functions</a>  </div>
108   <div class="headertitle"><div class="title">hardware_interp<div class="ingroups"><a class="el" href="group__hardware.html">Hardware APIs</a></div></div></div>
109 </div><!--header-->
110 <div class="contents">
111
112 <p>Hardware Interpolator API.  
113 <a href="#details">More...</a></p>
114 <table class="memberdecls">
115 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="groups" name="groups"></a>
116 Modules</h2></td></tr>
117 <tr class="memitem:group__interp__config"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__interp__config.html">interp_config</a></td></tr>
118 <tr class="memdesc:group__interp__config"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interpolator configuration. <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:ga4bf868768cfc42e621211d9dea8cc9bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#ga4bf868768cfc42e621211d9dea8cc9bf">interp_claim_lane</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, uint lane)</td></tr>
124 <tr class="memdesc:ga4bf868768cfc42e621211d9dea8cc9bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Claim the interpolator lane specified.  <a href="group__hardware__interp.html#ga4bf868768cfc42e621211d9dea8cc9bf">More...</a><br /></td></tr>
125 <tr class="separator:ga4bf868768cfc42e621211d9dea8cc9bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
126 <tr class="memitem:ga7da3e2eec0075ae39bf648b6a3b6feb9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#ga7da3e2eec0075ae39bf648b6a3b6feb9">interp_claim_lane_mask</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, uint lane_mask)</td></tr>
127 <tr class="memdesc:ga7da3e2eec0075ae39bf648b6a3b6feb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Claim the interpolator lanes specified in the mask.  <a href="group__hardware__interp.html#ga7da3e2eec0075ae39bf648b6a3b6feb9">More...</a><br /></td></tr>
128 <tr class="separator:ga7da3e2eec0075ae39bf648b6a3b6feb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
129 <tr class="memitem:ga47d82417be5f875a1060384eada84147"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#ga47d82417be5f875a1060384eada84147">interp_unclaim_lane</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, uint lane)</td></tr>
130 <tr class="memdesc:ga47d82417be5f875a1060384eada84147"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release a previously claimed interpolator lane.  <a href="group__hardware__interp.html#ga47d82417be5f875a1060384eada84147">More...</a><br /></td></tr>
131 <tr class="separator:ga47d82417be5f875a1060384eada84147"><td class="memSeparator" colspan="2">&#160;</td></tr>
132 <tr class="memitem:gaf5bfa88632de76db56f01e3f22d705e0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#gaf5bfa88632de76db56f01e3f22d705e0">interp_lane_is_claimed</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, uint lane)</td></tr>
133 <tr class="memdesc:gaf5bfa88632de76db56f01e3f22d705e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if an interpolator lane is claimed.  <a href="group__hardware__interp.html#gaf5bfa88632de76db56f01e3f22d705e0">More...</a><br /></td></tr>
134 <tr class="separator:gaf5bfa88632de76db56f01e3f22d705e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
135 <tr class="memitem:ga8b6dfe0f72bb43788ff10d25d6b17403"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#ga8b6dfe0f72bb43788ff10d25d6b17403">interp_unclaim_lane_mask</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, uint lane_mask)</td></tr>
136 <tr class="memdesc:ga8b6dfe0f72bb43788ff10d25d6b17403"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release previously claimed interpolator lanes.  <a href="group__hardware__interp.html#ga8b6dfe0f72bb43788ff10d25d6b17403">More...</a><br /></td></tr>
137 <tr class="separator:ga8b6dfe0f72bb43788ff10d25d6b17403"><td class="memSeparator" colspan="2">&#160;</td></tr>
138 <tr class="memitem:ga839a103a740e190e7dc1b1313afb11a3"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#ga839a103a740e190e7dc1b1313afb11a3">interp_set_force_bits</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, uint lane, uint bits)</td></tr>
139 <tr class="memdesc:ga839a103a740e190e7dc1b1313afb11a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Directly set the force bits on a specified lane.  <a href="group__hardware__interp.html#ga839a103a740e190e7dc1b1313afb11a3">More...</a><br /></td></tr>
140 <tr class="separator:ga839a103a740e190e7dc1b1313afb11a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
141 <tr class="memitem:ga87a06576cf02918ed74f15415b1517f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#ga87a06576cf02918ed74f15415b1517f2">interp_save</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, <a class="el" href="structinterp__hw__save__t.html">interp_hw_save_t</a> *saver)</td></tr>
142 <tr class="memdesc:ga87a06576cf02918ed74f15415b1517f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save the specified interpolator state.  <a href="group__hardware__interp.html#ga87a06576cf02918ed74f15415b1517f2">More...</a><br /></td></tr>
143 <tr class="separator:ga87a06576cf02918ed74f15415b1517f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
144 <tr class="memitem:ga35e7824263e623c7e2d54a74b2631c61"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#ga35e7824263e623c7e2d54a74b2631c61">interp_restore</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, <a class="el" href="structinterp__hw__save__t.html">interp_hw_save_t</a> *saver)</td></tr>
145 <tr class="memdesc:ga35e7824263e623c7e2d54a74b2631c61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restore an interpolator state.  <a href="group__hardware__interp.html#ga35e7824263e623c7e2d54a74b2631c61">More...</a><br /></td></tr>
146 <tr class="separator:ga35e7824263e623c7e2d54a74b2631c61"><td class="memSeparator" colspan="2">&#160;</td></tr>
147 <tr class="memitem:gaa213d0a845f57c719593fa8be01482f1"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#gaa213d0a845f57c719593fa8be01482f1">interp_set_base</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, uint lane, uint32_t val)</td></tr>
148 <tr class="memdesc:gaa213d0a845f57c719593fa8be01482f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the interpolator base register by lane.  <a href="group__hardware__interp.html#gaa213d0a845f57c719593fa8be01482f1">More...</a><br /></td></tr>
149 <tr class="separator:gaa213d0a845f57c719593fa8be01482f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
150 <tr class="memitem:ga1d89466df907cb1515b639813ee34837"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#ga1d89466df907cb1515b639813ee34837">interp_get_base</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, uint lane)</td></tr>
151 <tr class="memdesc:ga1d89466df907cb1515b639813ee34837"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the content of interpolator base register by lane.  <a href="group__hardware__interp.html#ga1d89466df907cb1515b639813ee34837">More...</a><br /></td></tr>
152 <tr class="separator:ga1d89466df907cb1515b639813ee34837"><td class="memSeparator" colspan="2">&#160;</td></tr>
153 <tr class="memitem:ga25479c3fa9137c52fc22c1c9a796ab93"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#ga25479c3fa9137c52fc22c1c9a796ab93">interp_set_base_both</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, uint32_t val)</td></tr>
154 <tr class="memdesc:ga25479c3fa9137c52fc22c1c9a796ab93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the interpolator base registers simultaneously.  <a href="group__hardware__interp.html#ga25479c3fa9137c52fc22c1c9a796ab93">More...</a><br /></td></tr>
155 <tr class="separator:ga25479c3fa9137c52fc22c1c9a796ab93"><td class="memSeparator" colspan="2">&#160;</td></tr>
156 <tr class="memitem:gae544ffb8c39587a43e69e3644f6da5d2"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#gae544ffb8c39587a43e69e3644f6da5d2">interp_set_accumulator</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, uint lane, uint32_t val)</td></tr>
157 <tr class="memdesc:gae544ffb8c39587a43e69e3644f6da5d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the interpolator accumulator register by lane.  <a href="group__hardware__interp.html#gae544ffb8c39587a43e69e3644f6da5d2">More...</a><br /></td></tr>
158 <tr class="separator:gae544ffb8c39587a43e69e3644f6da5d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
159 <tr class="memitem:gaae77d8dbe417020c1d707b05b6a164ae"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#gaae77d8dbe417020c1d707b05b6a164ae">interp_get_accumulator</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, uint lane)</td></tr>
160 <tr class="memdesc:gaae77d8dbe417020c1d707b05b6a164ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the content of the interpolator accumulator register by lane.  <a href="group__hardware__interp.html#gaae77d8dbe417020c1d707b05b6a164ae">More...</a><br /></td></tr>
161 <tr class="separator:gaae77d8dbe417020c1d707b05b6a164ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
162 <tr class="memitem:gaf831284340273ce3eb6b11974424dc1b"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#gaf831284340273ce3eb6b11974424dc1b">interp_pop_lane_result</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, uint lane)</td></tr>
163 <tr class="memdesc:gaf831284340273ce3eb6b11974424dc1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read lane result, and write lane results to both accumulators to update the interpolator.  <a href="group__hardware__interp.html#gaf831284340273ce3eb6b11974424dc1b">More...</a><br /></td></tr>
164 <tr class="separator:gaf831284340273ce3eb6b11974424dc1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
165 <tr class="memitem:gafc04844f6c02d3f942f8ee95fca144ef"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#gafc04844f6c02d3f942f8ee95fca144ef">interp_peek_lane_result</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, uint lane)</td></tr>
166 <tr class="memdesc:gafc04844f6c02d3f942f8ee95fca144ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read lane result.  <a href="group__hardware__interp.html#gafc04844f6c02d3f942f8ee95fca144ef">More...</a><br /></td></tr>
167 <tr class="separator:gafc04844f6c02d3f942f8ee95fca144ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
168 <tr class="memitem:gab438b641a65e536f3bcec411596988a2"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#gab438b641a65e536f3bcec411596988a2">interp_pop_full_result</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp)</td></tr>
169 <tr class="memdesc:gab438b641a65e536f3bcec411596988a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read lane result, and write lane results to both accumulators to update the interpolator.  <a href="group__hardware__interp.html#gab438b641a65e536f3bcec411596988a2">More...</a><br /></td></tr>
170 <tr class="separator:gab438b641a65e536f3bcec411596988a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
171 <tr class="memitem:gaadc9a108c4c4c0255062b56967c157cc"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#gaadc9a108c4c4c0255062b56967c157cc">interp_peek_full_result</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp)</td></tr>
172 <tr class="memdesc:gaadc9a108c4c4c0255062b56967c157cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read lane result.  <a href="group__hardware__interp.html#gaadc9a108c4c4c0255062b56967c157cc">More...</a><br /></td></tr>
173 <tr class="separator:gaadc9a108c4c4c0255062b56967c157cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
174 <tr class="memitem:gae90bdfe6d73365cf3bed859ca288f928"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#gae90bdfe6d73365cf3bed859ca288f928">interp_add_accumulater</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, uint lane, uint32_t val)</td></tr>
175 <tr class="memdesc:gae90bdfe6d73365cf3bed859ca288f928"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add to accumulator.  <a href="group__hardware__interp.html#gae90bdfe6d73365cf3bed859ca288f928">More...</a><br /></td></tr>
176 <tr class="separator:gae90bdfe6d73365cf3bed859ca288f928"><td class="memSeparator" colspan="2">&#160;</td></tr>
177 <tr class="memitem:ga20a0a099084a94e006e68f555685421a"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html#ga20a0a099084a94e006e68f555685421a">interp_get_raw</a> (<a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *interp, uint lane)</td></tr>
178 <tr class="memdesc:ga20a0a099084a94e006e68f555685421a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get raw lane value.  <a href="group__hardware__interp.html#ga20a0a099084a94e006e68f555685421a">More...</a><br /></td></tr>
179 <tr class="separator:ga20a0a099084a94e006e68f555685421a"><td class="memSeparator" colspan="2">&#160;</td></tr>
180 </table>
181 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
182 <p >Hardware Interpolator API. </p>
183 <p >Each core is equipped with two interpolators (INTERP0 and INTERP1) which can be used to accelerate tasks by combining certain pre-configured simple operations into a single processor cycle. Intended for cases where the pre-configured operation is repeated a large number of times, this results in code which uses both fewer CPU cycles and fewer CPU registers in the time critical sections of the code.</p>
184 <p >The interpolators are used heavily to accelerate audio operations within the SDK, but their flexible configuration make it possible to optimise many other tasks such as quantization and dithering, table lookup address generation, affine texture mapping, decompression and linear feedback.</p>
185 <p >Please refer to the appropriate RP-series microcontroller datasheet for more information on the HW interpolators and how they work. </p>
186 <h2 class="groupheader">Function Documentation</h2>
187 <a id="gae90bdfe6d73365cf3bed859ca288f928" name="gae90bdfe6d73365cf3bed859ca288f928"></a>
188 <h2 class="memtitle"><span class="permalink"><a href="#gae90bdfe6d73365cf3bed859ca288f928">&#9670;&nbsp;</a></span>interp_add_accumulater()</h2>
189
190 <div class="memitem">
191 <div class="memproto">
192 <table class="mlabels">
193   <tr>
194   <td class="mlabels-left">
195       <table class="memname">
196         <tr>
197           <td class="memname">static void interp_add_accumulater </td>
198           <td>(</td>
199           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
200           <td class="paramname"><em>interp</em>, </td>
201         </tr>
202         <tr>
203           <td class="paramkey"></td>
204           <td></td>
205           <td class="paramtype">uint&#160;</td>
206           <td class="paramname"><em>lane</em>, </td>
207         </tr>
208         <tr>
209           <td class="paramkey"></td>
210           <td></td>
211           <td class="paramtype">uint32_t&#160;</td>
212           <td class="paramname"><em>val</em>&#160;</td>
213         </tr>
214         <tr>
215           <td></td>
216           <td>)</td>
217           <td></td><td></td>
218         </tr>
219       </table>
220   </td>
221   <td class="mlabels-right">
222 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
223   </tr>
224 </table>
225 </div><div class="memdoc">
226
227 <p>Add to accumulator. </p>
228 <p >Atomically add the specified value to the accumulator on the specified lane</p>
229 <dl class="params"><dt>Parameters</dt><dd>
230   <table class="params">
231     <tr><td class="paramname">interp</td><td>Interpolator instance, interp0 or interp1. </td></tr>
232     <tr><td class="paramname">lane</td><td>The lane number, 0 or 1 </td></tr>
233     <tr><td class="paramname">val</td><td>Value to add </td></tr>
234   </table>
235   </dd>
236 </dl>
237
238 </div>
239 </div>
240 <a id="ga4bf868768cfc42e621211d9dea8cc9bf" name="ga4bf868768cfc42e621211d9dea8cc9bf"></a>
241 <h2 class="memtitle"><span class="permalink"><a href="#ga4bf868768cfc42e621211d9dea8cc9bf">&#9670;&nbsp;</a></span>interp_claim_lane()</h2>
242
243 <div class="memitem">
244 <div class="memproto">
245       <table class="memname">
246         <tr>
247           <td class="memname">void interp_claim_lane </td>
248           <td>(</td>
249           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
250           <td class="paramname"><em>interp</em>, </td>
251         </tr>
252         <tr>
253           <td class="paramkey"></td>
254           <td></td>
255           <td class="paramtype">uint&#160;</td>
256           <td class="paramname"><em>lane</em>&#160;</td>
257         </tr>
258         <tr>
259           <td></td>
260           <td>)</td>
261           <td></td><td></td>
262         </tr>
263       </table>
264 </div><div class="memdoc">
265
266 <p>Claim the interpolator lane specified. </p>
267 <p >Use this function to claim exclusive access to the specified interpolator lane.</p>
268 <p >This function will panic if the lane is already claimed.</p>
269 <dl class="params"><dt>Parameters</dt><dd>
270   <table class="params">
271     <tr><td class="paramname">interp</td><td>Interpolator on which to claim a lane. interp0 or interp1 </td></tr>
272     <tr><td class="paramname">lane</td><td>The lane number, 0 or 1. </td></tr>
273   </table>
274   </dd>
275 </dl>
276
277 </div>
278 </div>
279 <a id="ga7da3e2eec0075ae39bf648b6a3b6feb9" name="ga7da3e2eec0075ae39bf648b6a3b6feb9"></a>
280 <h2 class="memtitle"><span class="permalink"><a href="#ga7da3e2eec0075ae39bf648b6a3b6feb9">&#9670;&nbsp;</a></span>interp_claim_lane_mask()</h2>
281
282 <div class="memitem">
283 <div class="memproto">
284       <table class="memname">
285         <tr>
286           <td class="memname">void interp_claim_lane_mask </td>
287           <td>(</td>
288           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
289           <td class="paramname"><em>interp</em>, </td>
290         </tr>
291         <tr>
292           <td class="paramkey"></td>
293           <td></td>
294           <td class="paramtype">uint&#160;</td>
295           <td class="paramname"><em>lane_mask</em>&#160;</td>
296         </tr>
297         <tr>
298           <td></td>
299           <td>)</td>
300           <td></td><td></td>
301         </tr>
302       </table>
303 </div><div class="memdoc">
304
305 <p>Claim the interpolator lanes specified in the mask. </p>
306 <dl class="params"><dt>Parameters</dt><dd>
307   <table class="params">
308     <tr><td class="paramname">interp</td><td>Interpolator on which to claim lanes. interp0 or interp1 </td></tr>
309     <tr><td class="paramname">lane_mask</td><td>Bit pattern of lanes to claim (only bits 0 and 1 are valid) </td></tr>
310   </table>
311   </dd>
312 </dl>
313
314 </div>
315 </div>
316 <a id="gaae77d8dbe417020c1d707b05b6a164ae" name="gaae77d8dbe417020c1d707b05b6a164ae"></a>
317 <h2 class="memtitle"><span class="permalink"><a href="#gaae77d8dbe417020c1d707b05b6a164ae">&#9670;&nbsp;</a></span>interp_get_accumulator()</h2>
318
319 <div class="memitem">
320 <div class="memproto">
321 <table class="mlabels">
322   <tr>
323   <td class="mlabels-left">
324       <table class="memname">
325         <tr>
326           <td class="memname">static uint32_t interp_get_accumulator </td>
327           <td>(</td>
328           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
329           <td class="paramname"><em>interp</em>, </td>
330         </tr>
331         <tr>
332           <td class="paramkey"></td>
333           <td></td>
334           <td class="paramtype">uint&#160;</td>
335           <td class="paramname"><em>lane</em>&#160;</td>
336         </tr>
337         <tr>
338           <td></td>
339           <td>)</td>
340           <td></td><td></td>
341         </tr>
342       </table>
343   </td>
344   <td class="mlabels-right">
345 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
346   </tr>
347 </table>
348 </div><div class="memdoc">
349
350 <p>Gets the content of the interpolator accumulator register by lane. </p>
351 <dl class="params"><dt>Parameters</dt><dd>
352   <table class="params">
353     <tr><td class="paramname">interp</td><td>Interpolator instance, interp0 or interp1. </td></tr>
354     <tr><td class="paramname">lane</td><td>The lane number, 0 or 1 </td></tr>
355   </table>
356   </dd>
357 </dl>
358 <dl class="section return"><dt>Returns</dt><dd>The current content of the register </dd></dl>
359
360 </div>
361 </div>
362 <a id="ga1d89466df907cb1515b639813ee34837" name="ga1d89466df907cb1515b639813ee34837"></a>
363 <h2 class="memtitle"><span class="permalink"><a href="#ga1d89466df907cb1515b639813ee34837">&#9670;&nbsp;</a></span>interp_get_base()</h2>
364
365 <div class="memitem">
366 <div class="memproto">
367 <table class="mlabels">
368   <tr>
369   <td class="mlabels-left">
370       <table class="memname">
371         <tr>
372           <td class="memname">static uint32_t interp_get_base </td>
373           <td>(</td>
374           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
375           <td class="paramname"><em>interp</em>, </td>
376         </tr>
377         <tr>
378           <td class="paramkey"></td>
379           <td></td>
380           <td class="paramtype">uint&#160;</td>
381           <td class="paramname"><em>lane</em>&#160;</td>
382         </tr>
383         <tr>
384           <td></td>
385           <td>)</td>
386           <td></td><td></td>
387         </tr>
388       </table>
389   </td>
390   <td class="mlabels-right">
391 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
392   </tr>
393 </table>
394 </div><div class="memdoc">
395
396 <p>Gets the content of interpolator base register by lane. </p>
397 <dl class="params"><dt>Parameters</dt><dd>
398   <table class="params">
399     <tr><td class="paramname">interp</td><td>Interpolator instance, interp0 or interp1. </td></tr>
400     <tr><td class="paramname">lane</td><td>The lane number, 0 or 1 or 2 </td></tr>
401   </table>
402   </dd>
403 </dl>
404 <dl class="section return"><dt>Returns</dt><dd>The current content of the lane base register </dd></dl>
405
406 </div>
407 </div>
408 <a id="ga20a0a099084a94e006e68f555685421a" name="ga20a0a099084a94e006e68f555685421a"></a>
409 <h2 class="memtitle"><span class="permalink"><a href="#ga20a0a099084a94e006e68f555685421a">&#9670;&nbsp;</a></span>interp_get_raw()</h2>
410
411 <div class="memitem">
412 <div class="memproto">
413 <table class="mlabels">
414   <tr>
415   <td class="mlabels-left">
416       <table class="memname">
417         <tr>
418           <td class="memname">static uint32_t interp_get_raw </td>
419           <td>(</td>
420           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
421           <td class="paramname"><em>interp</em>, </td>
422         </tr>
423         <tr>
424           <td class="paramkey"></td>
425           <td></td>
426           <td class="paramtype">uint&#160;</td>
427           <td class="paramname"><em>lane</em>&#160;</td>
428         </tr>
429         <tr>
430           <td></td>
431           <td>)</td>
432           <td></td><td></td>
433         </tr>
434       </table>
435   </td>
436   <td class="mlabels-right">
437 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
438   </tr>
439 </table>
440 </div><div class="memdoc">
441
442 <p>Get raw lane value. </p>
443 <p >Returns the raw shift and mask value from the specified lane, BASE0 is NOT added</p>
444 <dl class="params"><dt>Parameters</dt><dd>
445   <table class="params">
446     <tr><td class="paramname">interp</td><td>Interpolator instance, interp0 or interp1. </td></tr>
447     <tr><td class="paramname">lane</td><td>The lane number, 0 or 1 </td></tr>
448   </table>
449   </dd>
450 </dl>
451 <dl class="section return"><dt>Returns</dt><dd>The raw shift/mask value </dd></dl>
452
453 </div>
454 </div>
455 <a id="gaf5bfa88632de76db56f01e3f22d705e0" name="gaf5bfa88632de76db56f01e3f22d705e0"></a>
456 <h2 class="memtitle"><span class="permalink"><a href="#gaf5bfa88632de76db56f01e3f22d705e0">&#9670;&nbsp;</a></span>interp_lane_is_claimed()</h2>
457
458 <div class="memitem">
459 <div class="memproto">
460       <table class="memname">
461         <tr>
462           <td class="memname">bool interp_lane_is_claimed </td>
463           <td>(</td>
464           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
465           <td class="paramname"><em>interp</em>, </td>
466         </tr>
467         <tr>
468           <td class="paramkey"></td>
469           <td></td>
470           <td class="paramtype">uint&#160;</td>
471           <td class="paramname"><em>lane</em>&#160;</td>
472         </tr>
473         <tr>
474           <td></td>
475           <td>)</td>
476           <td></td><td></td>
477         </tr>
478       </table>
479 </div><div class="memdoc">
480
481 <p>Determine if an interpolator lane is claimed. </p>
482 <dl class="params"><dt>Parameters</dt><dd>
483   <table class="params">
484     <tr><td class="paramname">interp</td><td>Interpolator whose lane to check </td></tr>
485     <tr><td class="paramname">lane</td><td>The lane number, 0 or 1 </td></tr>
486   </table>
487   </dd>
488 </dl>
489 <dl class="section return"><dt>Returns</dt><dd>true if claimed, false otherwise </dd></dl>
490 <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__hardware__interp.html#ga4bf868768cfc42e621211d9dea8cc9bf" title="Claim the interpolator lane specified.">interp_claim_lane</a> </dd>
491 <dd>
492 <a class="el" href="group__hardware__interp.html#ga7da3e2eec0075ae39bf648b6a3b6feb9" title="Claim the interpolator lanes specified in the mask.">interp_claim_lane_mask</a> </dd></dl>
493
494 </div>
495 </div>
496 <a id="gaadc9a108c4c4c0255062b56967c157cc" name="gaadc9a108c4c4c0255062b56967c157cc"></a>
497 <h2 class="memtitle"><span class="permalink"><a href="#gaadc9a108c4c4c0255062b56967c157cc">&#9670;&nbsp;</a></span>interp_peek_full_result()</h2>
498
499 <div class="memitem">
500 <div class="memproto">
501 <table class="mlabels">
502   <tr>
503   <td class="mlabels-left">
504       <table class="memname">
505         <tr>
506           <td class="memname">static uint32_t interp_peek_full_result </td>
507           <td>(</td>
508           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
509           <td class="paramname"><em>interp</em></td><td>)</td>
510           <td></td>
511         </tr>
512       </table>
513   </td>
514   <td class="mlabels-right">
515 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
516   </tr>
517 </table>
518 </div><div class="memdoc">
519
520 <p>Read lane result. </p>
521 <dl class="params"><dt>Parameters</dt><dd>
522   <table class="params">
523     <tr><td class="paramname">interp</td><td>Interpolator instance, interp0 or interp1. </td></tr>
524   </table>
525   </dd>
526 </dl>
527 <dl class="section return"><dt>Returns</dt><dd>The content of the FULL register </dd></dl>
528
529 </div>
530 </div>
531 <a id="gafc04844f6c02d3f942f8ee95fca144ef" name="gafc04844f6c02d3f942f8ee95fca144ef"></a>
532 <h2 class="memtitle"><span class="permalink"><a href="#gafc04844f6c02d3f942f8ee95fca144ef">&#9670;&nbsp;</a></span>interp_peek_lane_result()</h2>
533
534 <div class="memitem">
535 <div class="memproto">
536 <table class="mlabels">
537   <tr>
538   <td class="mlabels-left">
539       <table class="memname">
540         <tr>
541           <td class="memname">static uint32_t interp_peek_lane_result </td>
542           <td>(</td>
543           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
544           <td class="paramname"><em>interp</em>, </td>
545         </tr>
546         <tr>
547           <td class="paramkey"></td>
548           <td></td>
549           <td class="paramtype">uint&#160;</td>
550           <td class="paramname"><em>lane</em>&#160;</td>
551         </tr>
552         <tr>
553           <td></td>
554           <td>)</td>
555           <td></td><td></td>
556         </tr>
557       </table>
558   </td>
559   <td class="mlabels-right">
560 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
561   </tr>
562 </table>
563 </div><div class="memdoc">
564
565 <p>Read lane result. </p>
566 <dl class="params"><dt>Parameters</dt><dd>
567   <table class="params">
568     <tr><td class="paramname">interp</td><td>Interpolator instance, interp0 or interp1. </td></tr>
569     <tr><td class="paramname">lane</td><td>The lane number, 0 or 1 </td></tr>
570   </table>
571   </dd>
572 </dl>
573 <dl class="section return"><dt>Returns</dt><dd>The content of the lane result register </dd></dl>
574
575 </div>
576 </div>
577 <a id="gab438b641a65e536f3bcec411596988a2" name="gab438b641a65e536f3bcec411596988a2"></a>
578 <h2 class="memtitle"><span class="permalink"><a href="#gab438b641a65e536f3bcec411596988a2">&#9670;&nbsp;</a></span>interp_pop_full_result()</h2>
579
580 <div class="memitem">
581 <div class="memproto">
582 <table class="mlabels">
583   <tr>
584   <td class="mlabels-left">
585       <table class="memname">
586         <tr>
587           <td class="memname">static uint32_t interp_pop_full_result </td>
588           <td>(</td>
589           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
590           <td class="paramname"><em>interp</em></td><td>)</td>
591           <td></td>
592         </tr>
593       </table>
594   </td>
595   <td class="mlabels-right">
596 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
597   </tr>
598 </table>
599 </div><div class="memdoc">
600
601 <p>Read lane result, and write lane results to both accumulators to update the interpolator. </p>
602 <dl class="params"><dt>Parameters</dt><dd>
603   <table class="params">
604     <tr><td class="paramname">interp</td><td>Interpolator instance, interp0 or interp1. </td></tr>
605   </table>
606   </dd>
607 </dl>
608 <dl class="section return"><dt>Returns</dt><dd>The content of the FULL register </dd></dl>
609
610 </div>
611 </div>
612 <a id="gaf831284340273ce3eb6b11974424dc1b" name="gaf831284340273ce3eb6b11974424dc1b"></a>
613 <h2 class="memtitle"><span class="permalink"><a href="#gaf831284340273ce3eb6b11974424dc1b">&#9670;&nbsp;</a></span>interp_pop_lane_result()</h2>
614
615 <div class="memitem">
616 <div class="memproto">
617 <table class="mlabels">
618   <tr>
619   <td class="mlabels-left">
620       <table class="memname">
621         <tr>
622           <td class="memname">static uint32_t interp_pop_lane_result </td>
623           <td>(</td>
624           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
625           <td class="paramname"><em>interp</em>, </td>
626         </tr>
627         <tr>
628           <td class="paramkey"></td>
629           <td></td>
630           <td class="paramtype">uint&#160;</td>
631           <td class="paramname"><em>lane</em>&#160;</td>
632         </tr>
633         <tr>
634           <td></td>
635           <td>)</td>
636           <td></td><td></td>
637         </tr>
638       </table>
639   </td>
640   <td class="mlabels-right">
641 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
642   </tr>
643 </table>
644 </div><div class="memdoc">
645
646 <p>Read lane result, and write lane results to both accumulators to update the interpolator. </p>
647 <dl class="params"><dt>Parameters</dt><dd>
648   <table class="params">
649     <tr><td class="paramname">interp</td><td>Interpolator instance, interp0 or interp1. </td></tr>
650     <tr><td class="paramname">lane</td><td>The lane number, 0 or 1 </td></tr>
651   </table>
652   </dd>
653 </dl>
654 <dl class="section return"><dt>Returns</dt><dd>The content of the lane result register </dd></dl>
655
656 </div>
657 </div>
658 <a id="ga35e7824263e623c7e2d54a74b2631c61" name="ga35e7824263e623c7e2d54a74b2631c61"></a>
659 <h2 class="memtitle"><span class="permalink"><a href="#ga35e7824263e623c7e2d54a74b2631c61">&#9670;&nbsp;</a></span>interp_restore()</h2>
660
661 <div class="memitem">
662 <div class="memproto">
663       <table class="memname">
664         <tr>
665           <td class="memname">void interp_restore </td>
666           <td>(</td>
667           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
668           <td class="paramname"><em>interp</em>, </td>
669         </tr>
670         <tr>
671           <td class="paramkey"></td>
672           <td></td>
673           <td class="paramtype"><a class="el" href="structinterp__hw__save__t.html">interp_hw_save_t</a> *&#160;</td>
674           <td class="paramname"><em>saver</em>&#160;</td>
675         </tr>
676         <tr>
677           <td></td>
678           <td>)</td>
679           <td></td><td></td>
680         </tr>
681       </table>
682 </div><div class="memdoc">
683
684 <p>Restore an interpolator state. </p>
685 <dl class="params"><dt>Parameters</dt><dd>
686   <table class="params">
687     <tr><td class="paramname">interp</td><td>Interpolator instance, interp0 or interp1. </td></tr>
688     <tr><td class="paramname">saver</td><td>Pointer to save structure to reapply to the specified interpolator </td></tr>
689   </table>
690   </dd>
691 </dl>
692
693 </div>
694 </div>
695 <a id="ga87a06576cf02918ed74f15415b1517f2" name="ga87a06576cf02918ed74f15415b1517f2"></a>
696 <h2 class="memtitle"><span class="permalink"><a href="#ga87a06576cf02918ed74f15415b1517f2">&#9670;&nbsp;</a></span>interp_save()</h2>
697
698 <div class="memitem">
699 <div class="memproto">
700       <table class="memname">
701         <tr>
702           <td class="memname">void interp_save </td>
703           <td>(</td>
704           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
705           <td class="paramname"><em>interp</em>, </td>
706         </tr>
707         <tr>
708           <td class="paramkey"></td>
709           <td></td>
710           <td class="paramtype"><a class="el" href="structinterp__hw__save__t.html">interp_hw_save_t</a> *&#160;</td>
711           <td class="paramname"><em>saver</em>&#160;</td>
712         </tr>
713         <tr>
714           <td></td>
715           <td>)</td>
716           <td></td><td></td>
717         </tr>
718       </table>
719 </div><div class="memdoc">
720
721 <p>Save the specified interpolator state. </p>
722 <p >Can be used to save state if you need an interpolator for another purpose, state can then be recovered afterwards and continue from that point</p>
723 <dl class="params"><dt>Parameters</dt><dd>
724   <table class="params">
725     <tr><td class="paramname">interp</td><td>Interpolator instance, interp0 or interp1. </td></tr>
726     <tr><td class="paramname">saver</td><td>Pointer to the save structure to fill in </td></tr>
727   </table>
728   </dd>
729 </dl>
730
731 </div>
732 </div>
733 <a id="gae544ffb8c39587a43e69e3644f6da5d2" name="gae544ffb8c39587a43e69e3644f6da5d2"></a>
734 <h2 class="memtitle"><span class="permalink"><a href="#gae544ffb8c39587a43e69e3644f6da5d2">&#9670;&nbsp;</a></span>interp_set_accumulator()</h2>
735
736 <div class="memitem">
737 <div class="memproto">
738 <table class="mlabels">
739   <tr>
740   <td class="mlabels-left">
741       <table class="memname">
742         <tr>
743           <td class="memname">static void interp_set_accumulator </td>
744           <td>(</td>
745           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
746           <td class="paramname"><em>interp</em>, </td>
747         </tr>
748         <tr>
749           <td class="paramkey"></td>
750           <td></td>
751           <td class="paramtype">uint&#160;</td>
752           <td class="paramname"><em>lane</em>, </td>
753         </tr>
754         <tr>
755           <td class="paramkey"></td>
756           <td></td>
757           <td class="paramtype">uint32_t&#160;</td>
758           <td class="paramname"><em>val</em>&#160;</td>
759         </tr>
760         <tr>
761           <td></td>
762           <td>)</td>
763           <td></td><td></td>
764         </tr>
765       </table>
766   </td>
767   <td class="mlabels-right">
768 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
769   </tr>
770 </table>
771 </div><div class="memdoc">
772
773 <p>Sets the interpolator accumulator register by lane. </p>
774 <dl class="params"><dt>Parameters</dt><dd>
775   <table class="params">
776     <tr><td class="paramname">interp</td><td>Interpolator instance, interp0 or interp1. </td></tr>
777     <tr><td class="paramname">lane</td><td>The lane number, 0 or 1 </td></tr>
778     <tr><td class="paramname">val</td><td>The value to apply to the register </td></tr>
779   </table>
780   </dd>
781 </dl>
782
783 </div>
784 </div>
785 <a id="gaa213d0a845f57c719593fa8be01482f1" name="gaa213d0a845f57c719593fa8be01482f1"></a>
786 <h2 class="memtitle"><span class="permalink"><a href="#gaa213d0a845f57c719593fa8be01482f1">&#9670;&nbsp;</a></span>interp_set_base()</h2>
787
788 <div class="memitem">
789 <div class="memproto">
790 <table class="mlabels">
791   <tr>
792   <td class="mlabels-left">
793       <table class="memname">
794         <tr>
795           <td class="memname">static void interp_set_base </td>
796           <td>(</td>
797           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
798           <td class="paramname"><em>interp</em>, </td>
799         </tr>
800         <tr>
801           <td class="paramkey"></td>
802           <td></td>
803           <td class="paramtype">uint&#160;</td>
804           <td class="paramname"><em>lane</em>, </td>
805         </tr>
806         <tr>
807           <td class="paramkey"></td>
808           <td></td>
809           <td class="paramtype">uint32_t&#160;</td>
810           <td class="paramname"><em>val</em>&#160;</td>
811         </tr>
812         <tr>
813           <td></td>
814           <td>)</td>
815           <td></td><td></td>
816         </tr>
817       </table>
818   </td>
819   <td class="mlabels-right">
820 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
821   </tr>
822 </table>
823 </div><div class="memdoc">
824
825 <p>Sets the interpolator base register by lane. </p>
826 <dl class="params"><dt>Parameters</dt><dd>
827   <table class="params">
828     <tr><td class="paramname">interp</td><td>Interpolator instance, interp0 or interp1. </td></tr>
829     <tr><td class="paramname">lane</td><td>The lane number, 0 or 1 or 2 </td></tr>
830     <tr><td class="paramname">val</td><td>The value to apply to the register </td></tr>
831   </table>
832   </dd>
833 </dl>
834
835 </div>
836 </div>
837 <a id="ga25479c3fa9137c52fc22c1c9a796ab93" name="ga25479c3fa9137c52fc22c1c9a796ab93"></a>
838 <h2 class="memtitle"><span class="permalink"><a href="#ga25479c3fa9137c52fc22c1c9a796ab93">&#9670;&nbsp;</a></span>interp_set_base_both()</h2>
839
840 <div class="memitem">
841 <div class="memproto">
842 <table class="mlabels">
843   <tr>
844   <td class="mlabels-left">
845       <table class="memname">
846         <tr>
847           <td class="memname">static void interp_set_base_both </td>
848           <td>(</td>
849           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
850           <td class="paramname"><em>interp</em>, </td>
851         </tr>
852         <tr>
853           <td class="paramkey"></td>
854           <td></td>
855           <td class="paramtype">uint32_t&#160;</td>
856           <td class="paramname"><em>val</em>&#160;</td>
857         </tr>
858         <tr>
859           <td></td>
860           <td>)</td>
861           <td></td><td></td>
862         </tr>
863       </table>
864   </td>
865   <td class="mlabels-right">
866 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
867   </tr>
868 </table>
869 </div><div class="memdoc">
870
871 <p>Sets the interpolator base registers simultaneously. </p>
872 <p >The lower 16 bits go to BASE0, upper bits to BASE1 simultaneously. Each half is sign-extended to 32 bits if that lane’s SIGNED flag is set.</p>
873 <dl class="params"><dt>Parameters</dt><dd>
874   <table class="params">
875     <tr><td class="paramname">interp</td><td>Interpolator instance, interp0 or interp1. </td></tr>
876     <tr><td class="paramname">val</td><td>The value to apply to the register </td></tr>
877   </table>
878   </dd>
879 </dl>
880
881 </div>
882 </div>
883 <a id="ga839a103a740e190e7dc1b1313afb11a3" name="ga839a103a740e190e7dc1b1313afb11a3"></a>
884 <h2 class="memtitle"><span class="permalink"><a href="#ga839a103a740e190e7dc1b1313afb11a3">&#9670;&nbsp;</a></span>interp_set_force_bits()</h2>
885
886 <div class="memitem">
887 <div class="memproto">
888 <table class="mlabels">
889   <tr>
890   <td class="mlabels-left">
891       <table class="memname">
892         <tr>
893           <td class="memname">static void interp_set_force_bits </td>
894           <td>(</td>
895           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
896           <td class="paramname"><em>interp</em>, </td>
897         </tr>
898         <tr>
899           <td class="paramkey"></td>
900           <td></td>
901           <td class="paramtype">uint&#160;</td>
902           <td class="paramname"><em>lane</em>, </td>
903         </tr>
904         <tr>
905           <td class="paramkey"></td>
906           <td></td>
907           <td class="paramtype">uint&#160;</td>
908           <td class="paramname"><em>bits</em>&#160;</td>
909         </tr>
910         <tr>
911           <td></td>
912           <td>)</td>
913           <td></td><td></td>
914         </tr>
915       </table>
916   </td>
917   <td class="mlabels-right">
918 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
919   </tr>
920 </table>
921 </div><div class="memdoc">
922
923 <p>Directly set the force bits on a specified lane. </p>
924 <p >These bits are ORed into bits 29:28 of the lane result presented to the processor on the bus. There is no effect on the internal 32-bit datapath.</p>
925 <p >Useful for using a lane to generate sequence of pointers into flash or SRAM, saving a subsequent OR or add operation.</p>
926 <dl class="params"><dt>Parameters</dt><dd>
927   <table class="params">
928     <tr><td class="paramname">interp</td><td>Interpolator instance, interp0 or interp1. </td></tr>
929     <tr><td class="paramname">lane</td><td>The lane to set </td></tr>
930     <tr><td class="paramname">bits</td><td>The bits to set (bits 0 and 1, value range 0-3) </td></tr>
931   </table>
932   </dd>
933 </dl>
934
935 </div>
936 </div>
937 <a id="ga47d82417be5f875a1060384eada84147" name="ga47d82417be5f875a1060384eada84147"></a>
938 <h2 class="memtitle"><span class="permalink"><a href="#ga47d82417be5f875a1060384eada84147">&#9670;&nbsp;</a></span>interp_unclaim_lane()</h2>
939
940 <div class="memitem">
941 <div class="memproto">
942       <table class="memname">
943         <tr>
944           <td class="memname">void interp_unclaim_lane </td>
945           <td>(</td>
946           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
947           <td class="paramname"><em>interp</em>, </td>
948         </tr>
949         <tr>
950           <td class="paramkey"></td>
951           <td></td>
952           <td class="paramtype">uint&#160;</td>
953           <td class="paramname"><em>lane</em>&#160;</td>
954         </tr>
955         <tr>
956           <td></td>
957           <td>)</td>
958           <td></td><td></td>
959         </tr>
960       </table>
961 </div><div class="memdoc">
962
963 <p>Release a previously claimed interpolator lane. </p>
964 <dl class="params"><dt>Parameters</dt><dd>
965   <table class="params">
966     <tr><td class="paramname">interp</td><td>Interpolator on which to release a lane. interp0 or interp1 </td></tr>
967     <tr><td class="paramname">lane</td><td>The lane number, 0 or 1 </td></tr>
968   </table>
969   </dd>
970 </dl>
971
972 </div>
973 </div>
974 <a id="ga8b6dfe0f72bb43788ff10d25d6b17403" name="ga8b6dfe0f72bb43788ff10d25d6b17403"></a>
975 <h2 class="memtitle"><span class="permalink"><a href="#ga8b6dfe0f72bb43788ff10d25d6b17403">&#9670;&nbsp;</a></span>interp_unclaim_lane_mask()</h2>
976
977 <div class="memitem">
978 <div class="memproto">
979       <table class="memname">
980         <tr>
981           <td class="memname">void interp_unclaim_lane_mask </td>
982           <td>(</td>
983           <td class="paramtype"><a class="el" href="structinterp__hw__t.html">interp_hw_t</a> *&#160;</td>
984           <td class="paramname"><em>interp</em>, </td>
985         </tr>
986         <tr>
987           <td class="paramkey"></td>
988           <td></td>
989           <td class="paramtype">uint&#160;</td>
990           <td class="paramname"><em>lane_mask</em>&#160;</td>
991         </tr>
992         <tr>
993           <td></td>
994           <td>)</td>
995           <td></td><td></td>
996         </tr>
997       </table>
998 </div><div class="memdoc">
999
1000 <p>Release previously claimed interpolator lanes. </p>
1001 <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__hardware__interp.html#ga7da3e2eec0075ae39bf648b6a3b6feb9" title="Claim the interpolator lanes specified in the mask.">interp_claim_lane_mask</a></dd></dl>
1002 <dl class="params"><dt>Parameters</dt><dd>
1003   <table class="params">
1004     <tr><td class="paramname">interp</td><td>Interpolator on which to release lanes. interp0 or interp1 </td></tr>
1005     <tr><td class="paramname">lane_mask</td><td>Bit pattern of lanes to unclaim (only bits 0 and 1 are valid) </td></tr>
1006   </table>
1007   </dd>
1008 </dl>
1009
1010 </div>
1011 </div>
1012 </div><!-- contents -->
1013 </div><!-- doc-content -->
1014
1015         <script src="main.js"></script>
1016 </body>
1017 </html>
This page took 0.122838 seconds and 4 git commands to generate.