1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <title>UNICENS: Ucs_I2c_WritePort</title>
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
8 <link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
9 <script type="text/javascript" src="jquery.js"></script>
10 <script type="text/javascript" src="dynsections.js"></script>
11 <link href="navtree.css" rel="stylesheet" type="text/css"/>
12 <script type="text/javascript" src="resize.js"></script>
13 <script type="text/javascript" src="navtree.js"></script>
14 <script type="text/javascript">
15 $(document).ready(initResizable);
17 <link href="search/search.css" rel="stylesheet" type="text/css"/>
18 <script type="text/javascript" src="search/search.js"></script>
19 <script type="text/javascript">
20 $(document).ready(function() { searchBox.OnSelectItem(0); });
22 <link href="style_html.css" rel="stylesheet" type="text/css" />
23 <link href="inic.css" rel="stylesheet" type="text/css"/>
26 <div class="GlobalWrapper">
27 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
29 <table cellspacing="0" cellpadding="0">
32 <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
34 <div id="projectname">UNICENS <span id="projectnumber">V2.1.0-3491</span></div>
35 <div id="projectbrief">User Manual and API Reference</div>
36 <div id="searchbox"> <div id="MSearchBox" class="MSearchBoxInactive">
38 <img id="MSearchSelect" src="search/mag_sel.png"
39 onmouseover="return searchBox.OnSearchSelectShow()"
40 onmouseout="return searchBox.OnSearchSelectHide()"
42 <input type="text" id="MSearchField" value="Search" accesskey="S"
43 onfocus="searchBox.OnSearchFieldFocus(true)"
44 onblur="searchBox.OnSearchFieldFocus(false)"
45 onkeyup="searchBox.OnSearchFieldChange(event)"/>
46 </span><span class="right">
47 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
56 <!-- end header part -->
57 <!-- Generated by Doxygen 1.8.2 -->
58 <script type="text/javascript">
59 var searchBox = new SearchBox("searchBox", "search",false,'Search');
62 <div id="side-nav" class="ui-resizable side-nav-resizable">
64 <div id="nav-tree-contents">
65 <div id="nav-sync" class="sync"></div>
68 <div id="splitbar" style="-moz-user-select:none;"
69 class="ui-resizable-handle">
72 <script type="text/javascript">
73 $(document).ready(function(){initNavTree('group___g___u_c_s___i2_c.html','');});
75 <div id="doc-content">
76 <!-- window showing the filter options -->
77 <div id="MSearchSelectWindow"
78 onmouseover="return searchBox.OnSearchSelectShow()"
79 onmouseout="return searchBox.OnSearchSelectHide()"
80 onkeydown="return searchBox.OnSearchSelectKey(event)">
81 <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Pages</a></div>
83 <!-- iframe showing the search results (closed by default) -->
84 <div id="MSearchResultsWindow">
85 <iframe src="javascript:void(0)" frameborder="0"
86 name="MSearchResults" id="MSearchResults">
90 <div class="contents">
91 <a class="anchor" id="gade4a94669fe4f29f18fe5bfd4e102474"></a>
93 <div class="memproto">
94 <table class="memname">
96 <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_I2c_WritePort </td>
98 <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> * </td>
99 <td class="paramname"><em>self</em>, </td>
102 <td class="paramkey"></td>
104 <td class="paramtype">uint16_t </td>
105 <td class="paramname"><em>destination_address</em>, </td>
108 <td class="paramkey"></td>
110 <td class="paramtype">uint16_t </td>
111 <td class="paramname"><em>port_handle</em>, </td>
114 <td class="paramkey"></td>
116 <td class="paramtype"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#ga631c2b70299a4c07ac77b6741b5b5e44">Ucs_I2c_TrMode_t</a> </td>
117 <td class="paramname"><em>mode</em>, </td>
120 <td class="paramkey"></td>
122 <td class="paramtype">uint8_t </td>
123 <td class="paramname"><em>block_count</em>, </td>
126 <td class="paramkey"></td>
128 <td class="paramtype">uint8_t </td>
129 <td class="paramname"><em>slave_address</em>, </td>
132 <td class="paramkey"></td>
134 <td class="paramtype">uint16_t </td>
135 <td class="paramname"><em>timeout</em>, </td>
138 <td class="paramkey"></td>
140 <td class="paramtype">uint8_t </td>
141 <td class="paramname"><em>data_len</em>, </td>
144 <td class="paramkey"></td>
146 <td class="paramtype">uint8_t * </td>
147 <td class="paramname"><em>data_ptr</em>, </td>
150 <td class="paramkey"></td>
152 <td class="paramtype"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga50029da1794f34d3ddac9df8d537c234.html#ga50029da1794f34d3ddac9df8d537c234">Ucs_I2c_WritePortResCb_t</a> </td>
153 <td class="paramname"><em>result_fptr</em> </td>
161 </div><div class="memdoc">
163 <p>Writes a block of bytes to an I2C device at a specified I2C address. </p>
164 <table class="mns_ic_table">
166 <td id="mns_ic_inic"> </td><td>This function corresponds with the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-I2CPortWrite6C4">INIC.I2CPortWrite</a>.</td></tr>
168 <dl class="params"><dt>Parameters</dt><dd>
169 <table class="params">
170 <tr><td class="paramname">self</td><td>The UNICENS instance pointer </td></tr>
171 <tr><td class="paramname">destination_address</td><td>Address of the target device. Use the <code>UCS_ADDR_LOCAL_DEV</code> macro to target the local device. <br/>
172 The following address ranges are supported:<ul>
173 <li>[0x10 ... 0x2FF]</li>
174 <li>[0x500 ... 0xFEF]</li>
175 <li>UCS_ADDR_LOCAL_DEV </li>
178 <tr><td class="paramname">port_handle</td><td>Port resource handle. <table class="mns_param_table">
180 <td id="mns_param_small"> </td><td><code>I2CPortHandle</code></td></tr>
183 <tr><td class="paramname">mode</td><td>The write transfer mode. <table class="mns_param_table">
185 <td id="mns_param_small"> </td><td><code>Mode</code></td></tr>
188 <tr><td class="paramname">block_count</td><td>The number of blocks to be written to the I2C address. If parameter <em>mode</em> is <b>not</b> set to Burst Mode, the value of <em>block_count</em> has to be set to <b>0</b>. Otherwise the valid range of this parameter goes from 1 to 30. <table class="mns_param_table">
190 <td id="mns_param_small"> </td><td><code>BlockCount</code></td></tr>
193 <tr><td class="paramname">slave_address</td><td>The 7-bit I2C slave address of the peripheral to be read. <table class="mns_param_table">
195 <td id="mns_param_small"> </td><td><code>SlaveAddress</code></td></tr>
198 <tr><td class="paramname">timeout</td><td>The timeout for the I2C Port write. <table class="mns_param_table">
200 <td id="mns_param_small"> </td><td><code>Timeout</code></td></tr>
203 <tr><td class="paramname">data_len</td><td>The total number of bytes to be written to the addressed I2C peripheral. Even if parameter <em>mode</em> is set to Burst Mode, the <em>data_len</em> shall correspond to the whole size of the burst transfer. That is, the <em>data_len</em> shall equal the size of a block <b>times</b> the <em>block_count</em> value. </td></tr>
204 <tr><td class="paramname">data_ptr</td><td>Reference to the data to be written. </td></tr>
205 <tr><td class="paramname">result_fptr</td><td>Required result callback function pointer. </td></tr>
209 <dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
211 <th>Value </th><th>Description</th></tr>
213 <td>UCS_RET_SUCCESS </td><td>No error </td></tr>
215 <td>UCS_RET_ERR_PARAM </td><td>At least one parameter is wrong </td></tr>
217 <td>UCS_RET_ERR_BUFFER_OVERFLOW </td><td>No message buffer available </td></tr>
219 <td>UCS_RET_ERR_API_LOCKED </td><td>API is currently locked </td></tr>
221 <td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
226 <div class="fragment"><div class="line">uint8_t myData[] = {0x4U, 0x3U, 0x2U, 0x1U, 0x0U, 0x4U, 0x3U, 0x2U, 0x1U, 0x0U, 0x05U, 0x05U}; </div>
227 <div class="line"></div>
228 <div class="line"><span class="comment">// Main function</span></div>
229 <div class="line"><span class="keywordtype">void</span> main()</div>
230 <div class="line">{</div>
231 <div class="line"> <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> result = <a class="code" href="group___g___u_c_s___i2_c_gade4a94669fe4f29f18fe5bfd4e102474.html#gade4a94669fe4f29f18fe5bfd4e102474" title="Writes a block of bytes to an I2C device at a specified I2C address.">Ucs_I2c_WritePort</a>(0x15U, 0x0F00U, <a class="code" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44a3380b0b2a253a389aec424ef348a34b7" title="Burst mode of the I2C write transfer.">UCS_I2C_BURST_MODE</a>, 4U, 0x20U, 0x0FU, 12U, myData, &App_I2cWritePortResCb);</div>
232 <div class="line"> <span class="keywordflow">if</span> (result != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
233 <div class="line"> {</div>
234 <div class="line"> <span class="comment">// Error handling here </span></div>
235 <div class="line"> }</div>
236 <div class="line">}</div>
237 <div class="line"></div>
238 <div class="line"><span class="comment">// The event handler function</span></div>
239 <div class="line"><span class="comment">// Handle I2cWritePort event</span></div>
240 <div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_I2cWritePortResCb(uint16_t device_id, uint16_t port_handle, uint8_t i2c_slave_address, uint8_t data_len, <a class="code" href="struct_ucs___i2c___result__t.html" title="Result structure of the I2C Module.">Ucs_I2c_Result_t</a> result, <span class="keywordtype">void</span> * user_ptr)</div>
241 <div class="line">{</div>
242 <div class="line"> <span class="keywordflow">if</span> (result.<a class="code" href="struct_ucs___i2c___result__t_aacd0e1eabaa18a3fe226a2b4f849832b.html#aacd0e1eabaa18a3fe226a2b4f849832b" title="Result code.">code</a> == <a class="code" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a1f0bb0636d1fbe3a3c94541d3725b864" title="I2C command succeeded.">UCS_I2C_RES_SUCCESS</a>)</div>
243 <div class="line"> {</div>
244 <div class="line"> <span class="comment">// Do what needs to be..</span></div>
245 <div class="line"> }</div>
246 <div class="line"> <span class="keywordflow">else</span></div>
247 <div class="line"> {</div>
248 <div class="line"> <span class="comment">// Error handling here</span></div>
249 <div class="line"> <span class="keywordflow">switch</span>(result.<a class="code" href="struct_ucs___i2c___result__t_a288b89d26129791b83b01a3b464d7351.html#a288b89d26129791b83b01a3b464d7351" title="Detailed information on the returned result.">details</a>.<a class="code" href="struct_ucs___i2c___result_details__t_afbf6b21e51e2114bd8165bc6b9d920a5.html#afbf6b21e51e2114bd8165bc6b9d920a5" title="Specifies the type of the current asynchronous result.">result_type</a>)</div>
250 <div class="line"> {</div>
251 <div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#gga7c7b4521cb5391bd20c02104876a811da5f9dc425604e39a96af53cc4fb940cd6" title="Specifies the target results, typically INIC function-specific error from target device.">UCS_I2C_RESULT_TYPE_TGT</a>:</div>
252 <div class="line"> <span class="comment">// Handle the target results</span></div>
253 <div class="line"> <span class="keywordflow">break</span>;</div>
254 <div class="line"></div>
255 <div class="line"> <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#gga7c7b4521cb5391bd20c02104876a811da1e9f8a38a7bf67986bb52aae45326f0e" title="Specifies the transmission error information that occurred on the MOST network.">UCS_I2C_RESULT_TYPE_TX</a>:</div>
256 <div class="line"> <span class="keywordflow">default</span>:</div>
257 <div class="line"> <span class="comment">// Handle transmission error</span></div>
258 <div class="line"> <span class="keywordflow">break</span>;</div>
259 <div class="line"> }</div>
260 <div class="line"> }</div>
261 <div class="line"> }</div>
262 </div><!-- fragment -->
265 </div><!-- contents -->
266 </div><!-- doc-content -->
267 <!-- start footer part -->
268 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
270 <li class="navelem"><a class="el" href="group___g___u_c_s___i2_c.html">I2C</a></li>
271 <li class="footer">© 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
276 Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
279 <script language="javascript">
281 $('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');