Files
Examples/Java/Processing/processing-3.3.6/modes/java/reference/libraries/io/SPI.html
2018-04-20 10:15:15 +01:00

211 lines
8.3 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>SPI \ Language (API) \ Processing 2+</title>
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Author" content="Processing Foundation" />
<meta name="Publisher" content="Processing Foundation" />
<meta name="Keywords" content="Processing, Sketchbook, Programming, Coding, Code, Art, Design" />
<meta name="Description" content="Processing is a flexible software sketchbook and a language for learning how to code within the context of the visual arts. Since 2001, Processing has promoted software literacy within the visual arts and visual literacy within technology." />
<meta name="Copyright" content="All contents copyright the Processing Foundation, Ben Fry, Casey Reas, and the MIT Media Laboratory" />
<script src="../../javascript/modernizr-2.6.2.touch.js" type="text/javascript"></script>
<link href="../../css/style.css" rel="stylesheet" type="text/css" />
</head>
<body id="Langauge-en" onload="" >
<!-- ==================================== PAGE ============================ -->
<div id="container">
<!-- ==================================== HEADER ============================ -->
<div id="ribbon">
<ul class="left">
<li class="highlight"><a href="http://processing.org/">Processing</a></li>
<li><a href="http://p5js.org/">p5.js</a></li>
<li><a href="http://py.processing.org/">Processing.py</a></li>
<li><a href="http://android.processing.org/">Processing for Android</a></li>
</ul>
<ul class="right">
<li><a href="https://processingfoundation.org/">Processing Foundation</a></li>
</ul>
<div class="clear"></div>
</div>
<div id="header">
<a href="/" title="Back to the Processing cover."><div class="processing-logo no-cover" alt="Processing cover"></div></a>
<form name="search" method="get" action="//www.google.com/search">
<p><input type="hidden" name="as_sitesearch" value="processing.org" />
<input type="text" name="as_q" value="" size="20" class="text" />
<input type="submit" value=" " /></p>
</form>
</div>
<a id="TOP" name="TOP"></a>
<div id="navigation">
<div class="navBar" id="mainnav">
<a href="../../index.html" >Language</a><br>
<a href="../../libraries/index.html" class='active'>Libraries</a><br>
<a href="../../tools/index.html">Tools</a><br>
<a href="../../environment/index.html">Environment</a><br>
</div>
<script> document.querySelectorAll(".processing-logo")[0].className = "processing-logo"; </script>
</div>
<!-- ==================================== CONTENT - Headers ============================ -->
<div class="content">
<p class="ref-notice">This reference is for Processing 3.0+. If you have a previous version, use the reference included with your software in the Help menu. If you see any errors or have suggestions, <a href="https://github.com/processing/processing-docs/issues?state=open">please let us know</a>. If you prefer a more technical reference, visit the <a href="http://processing.github.io/processing-javadocs/core/">Processing Core Javadoc</a> and <a href="http://processing.github.io/processing-javadocs/libraries/">Libraries Javadoc</a>.</p>
<table cellpadding="0" cellspacing="0" border="0" class="ref-item">
<tr class="name-row">
<th scope="row">Name</th>
<td><h3>SPI</h3></td>
</tr>
<tr class=""><th scope="row">Examples</th><td><div class="example"><pre >
import processing.io.*;
SPI adc;
void setup() {
//printArray(SPI.list());
adc = new SPI(SPI.list()[0]);
adc.settings(500000, SPI.MSBFIRST, SPI.MODE0);
}
void draw() {
// read in values over SPI from an analog-to-digital
// converter
// dummy write, actual values don't matter
byte[] out = { 0, 0 };
byte[] in = adc.transfer(out);
// some input bit shifting according to the datasheet
int val = ((in[0] & 0x1f) << 5) | ((in[1] & 0xf8) >> 3);
// val is between 0 and 1023
println(val);
}
</pre></div>
</td></tr>
<tr class="">
<th scope="row">Description</th>
<td>
Opens an SPI interface as master<br/>
</br>
Serial Peripheral Interface (SPI) is a serial bus, commonly used to communicate
with sensors and memory devices. It uses four pins: MOSI (Master Out Slave In),
MISO (Master In Slave Out), and SCLK (clock signal) - those three are shared
among all devices on the bus - as well as one or more SS (Slave Select) pins,
that are used for the master to signal to the slave device that it is the
desired respondent for the transmission.<br/>
<br/>
The "master" device initiates a transfer by pulling the SS pin of the "slave"
low, and begins outputting a clock signal. In SPI, both the "master" as well as
the "slave" device output data at the same time. It is hence not possible to
read data without writing some (even if it means outputting zeros or other
dummy data).</br>
</br>
There are multiple possible configuration settings for SPI, see
<a href="SPI_settings_.html">settings()</a> for details.</br>
<br/>
This library supports multiple SPI objects making use of the same SPI
interface.
</td>
</tr>
<tr class=""><th scope="row">Methods</th><td><table cellpadding="0" cellspacing="0" border="0"><tr class="">
<th scope="row"><a href="SPI_close_.html">close()</a></th>
<td>Closes the SPI interface</td>
</tr>
<tr class="">
<th scope="row"><a href="SPI_list_.html">list()</a></th>
<td>Lists all available SPI interfaces</td>
</tr>
<tr class="">
<th scope="row"><a href="SPI_settings_.html">settings()</a></th>
<td>Configures the SPI interface</td>
</tr>
<tr class="">
<th scope="row"><a href="SPI_transfer_.html">transfer()</a></th>
<td>Transfers data over the SPI bus</td>
</tr></table></td></tr>
<tr class=""><th scope="row">Constructor</th><td><pre>SPI(<kbd>dev</kbd>)
</pre></td></tr>
<tr class=""> <th scope="row">Parameters</th><td><table cellpadding="0" cellspacing="0" border="0"><tr class="">
<th scope="row" class="code">dev</th>
<td>String: device name</td>
</tr></table></td> </tr>
</table>
Updated on April 30, 2017 02:33:20pm EDT<br /><br />
<!-- Creative Commons License -->
<div class="license">
<a rel="license" href="//creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border: none" src="https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png" /></a>
</div>
<!--
<?xpacket begin='' id=''?>
<x:xmpmeta xmlns:x='adobe:ns:meta/'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
<rdf:Description rdf:about=''
xmlns:xapRights='http://ns.adobe.com/xap/1.0/rights/'>
<xapRights:Marked>True</xapRights:Marked>
</rdf:Description>
<rdf:Description rdf:about=''
xmlns:xapRights='http://ns.adobe.com/xap/1.0/rights/'
>
<xapRights:UsageTerms>
<rdf:Alt>
<rdf:li xml:lang='x-default' >This work is licensed under a &lt;a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by-nc-sa/4.0/&#34;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License&lt;/a&gt;.</rdf:li>
<rdf:li xml:lang='en' >This work is licensed under a &lt;a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by-nc-sa/4.0/&#34;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License&lt;/a&gt;.</rdf:li>
</rdf:Alt>
</xapRights:UsageTerms>
</rdf:Description>
<rdf:Description rdf:about=''
xmlns:cc='http://creativecommons.org/ns#'>
<cc:license rdf:resource='http://creativecommons.org/licenses/by-nc-sa/4.0/'/>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end='r'?>
-->
</div>
<!-- ==================================== FOOTER ============================ -->
<div id="footer">
<div id="copyright">Processing is an open project intiated by <a href="http://benfry.com/">Ben Fry</a> and <a href="http://reas.com">Casey Reas</a>. It is developed by a <a href="../../about/people.html">team of volunteers</a>. </div>
<div id="colophon">
<a href="../../copyright.html">&copy; Info</a>
</div>
</div>
</div>
<script src="../../javascript/jquery-1.9.1.min.js"></script>
<script src="../../javascript/site.js" type="text/javascript"></script>
</body>
</html>