528 lines
20 KiB
HTML
528 lines
20 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<!--NewPage-->
|
|
<HTML>
|
|
<HEAD>
|
|
<!-- Generated by javadoc (build 1.6.0_29) on Mon Nov 28 00:50:35 PST 2011 -->
|
|
<TITLE>
|
|
PulseInput
|
|
</TITLE>
|
|
|
|
<META NAME="date" CONTENT="2011-11-28">
|
|
|
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
|
|
|
|
<SCRIPT type="text/javascript">
|
|
function windowTitle()
|
|
{
|
|
if (location.href.indexOf('is-external=true') == -1) {
|
|
parent.document.title="PulseInput";
|
|
}
|
|
}
|
|
</SCRIPT>
|
|
<NOSCRIPT>
|
|
</NOSCRIPT>
|
|
|
|
</HEAD>
|
|
|
|
<BODY BGCOLOR="white" onload="windowTitle();">
|
|
<HR>
|
|
|
|
|
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
<A NAME="navbar_top"><!-- --></A>
|
|
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
|
<TR>
|
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
|
<A NAME="navbar_top_firstrow"><!-- --></A>
|
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
|
<TR ALIGN="center" VALIGN="top">
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/PulseInput.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
|
</TR>
|
|
</TABLE>
|
|
</TD>
|
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
|
</EM>
|
|
</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
|
<A HREF="../../../ioio/lib/api/IOIOFactory.html" title="class in ioio.lib.api"><B>PREV CLASS</B></A>
|
|
<A HREF="../../../ioio/lib/api/PulseInput.ClockRate.html" title="enum in ioio.lib.api"><B>NEXT CLASS</B></A></FONT></TD>
|
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
|
<A HREF="../../../index.html?ioio/lib/api/PulseInput.html" target="_top"><B>FRAMES</B></A>
|
|
<A HREF="PulseInput.html" target="_top"><B>NO FRAMES</B></A>
|
|
<SCRIPT type="text/javascript">
|
|
<!--
|
|
if(window==top) {
|
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
|
}
|
|
//-->
|
|
</SCRIPT>
|
|
<NOSCRIPT>
|
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
|
</NOSCRIPT>
|
|
|
|
|
|
</FONT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
|
SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
|
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
|
</TR>
|
|
</TABLE>
|
|
<A NAME="skip-navbar_top"></A>
|
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
|
|
<HR>
|
|
<!-- ======== START OF CLASS DATA ======== -->
|
|
<H2>
|
|
<FONT SIZE="-1">
|
|
ioio.lib.api</FONT>
|
|
<BR>
|
|
Interface PulseInput</H2>
|
|
<DL>
|
|
<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../ioio/lib/api/Closeable.html" title="interface in ioio.lib.api">Closeable</A></DD>
|
|
</DL>
|
|
<HR>
|
|
<DL>
|
|
<DT><PRE>public interface <B>PulseInput</B><DT>extends <A HREF="../../../ioio/lib/api/Closeable.html" title="interface in ioio.lib.api">Closeable</A></DL>
|
|
</PRE>
|
|
|
|
<P>
|
|
An interface for pulse width and frequency measurements of digital signals.
|
|
<p>
|
|
PulseInput (commonly known as "input capture") is a versatile module which
|
|
enables extraction of various timing information from a digital signal. There
|
|
are two main use cases: pulse duration measurement and frequency measurement.
|
|
In pulse width measurement we measure the duration of a positive ("high") or
|
|
negative ("low") pulse, i.e. the elapsed time between a rise and a fall or
|
|
vice versa. This mode is useful, for example, for decoding a PWM signal or
|
|
measuring the delay of a sonar return signal. In frequency measurement we
|
|
measure the duration between a rising edge to the following rising edge. This
|
|
gives us a momentary reading of a signal's frequency or period. This is
|
|
commonly used, for example, in conjunction with an optical or magnetic sensor
|
|
for measuring a turning shaft's speed.
|
|
<p>
|
|
<A HREF="../../../ioio/lib/api/PulseInput.html" title="interface in ioio.lib.api"><CODE>PulseInput</CODE></A> instances are obtained by calling
|
|
<CODE>IOIO#openPulseInput(ioio.lib.api.DigitalInput.Spec, ClockRate, PulseMode, boolean)</CODE>
|
|
. When created, some important configuration decisions have to be made: the
|
|
precision (single or double), the clock rate and the mode of operation. Modes
|
|
are straightforward: <A HREF="../../../ioio/lib/api/PulseInput.PulseMode.html#POSITIVE"><CODE>PulseInput.PulseMode.POSITIVE</CODE></A> is used for measuring a
|
|
positive pulse, <A HREF="../../../ioio/lib/api/PulseInput.PulseMode.html#NEGATIVE"><CODE>PulseInput.PulseMode.NEGATIVE</CODE></A> a negative pulse, and
|
|
<A HREF="../../../ioio/lib/api/PulseInput.PulseMode.html#FREQ"><CODE>PulseInput.PulseMode.FREQ</CODE></A> / <A HREF="../../../ioio/lib/api/PulseInput.PulseMode.html#FREQ_SCALE_4"><CODE>PulseInput.PulseMode.FREQ_SCALE_4</CODE></A> /
|
|
<A HREF="../../../ioio/lib/api/PulseInput.PulseMode.html#FREQ_SCALE_16"><CODE>PulseInput.PulseMode.FREQ_SCALE_16</CODE></A> are used for measuring frequency. The
|
|
difference between the three scaling modes is that without scaling, the
|
|
frequency is determined by measurement of a single
|
|
(rising-edge-to-rising-edge) period. In x4 scaling, 4 consecutive periods are
|
|
measured and the time is divided by 4, providing some smoothing as well as
|
|
better resolution. Similarly for x16 scaling. Note that scaling affects the
|
|
range of signals to be measured, as discussed below.
|
|
<p>
|
|
The choice of single vs. double-precision is important to understand: IOIO
|
|
internally uses either 16-bit counters or 32-bit counters for the timing. 16-
|
|
counters force us to either limit the maximum duration (and the minimum
|
|
frequency) or compromise accuracy as compared to 32-bit counters. However, if
|
|
you need many concurrent pulse measurements in your application, you may have
|
|
no choice but to use single-precision.
|
|
<p>
|
|
The clock rate selection is important (and even critical when working in
|
|
single-precision) and requires the user to make some assumptions about the
|
|
nature of the measured signal. The higher the clock rate, the more precise
|
|
the measurement, but the longest pulse that can be measured decreases (or
|
|
lowest frequency that can be measured increases). Using the scaling option
|
|
when operating in frequency mode also affects these sizes. combinations. It
|
|
is always recommended to choose the most precise mode, which exceeds the
|
|
maximum expected pulse width (or inverse frequency). If a pulse is received
|
|
whom duration exceeds the longest allowed pulse, it will be "folded" into the
|
|
valid range and product garbage readings.
|
|
<p>
|
|
The following table (sorted by longest pulse) summarizes all possible clock /
|
|
mode combinations. The table applies for <b>single-precision</b> operation.
|
|
For double-precision, simply multiply the longest pulse by 65536 and divide
|
|
the lowest frequency by the same amount. Interestingly, the number written in
|
|
[ms] units in the longest pulse column, roughly corresponds to the same
|
|
number in minutes when working with double precsion, since 1[min] =
|
|
60000[ms].
|
|
<table border="1">
|
|
<tr>
|
|
<th>Clock</th>
|
|
<th>Scaling</th>
|
|
<th>Resolution</th>
|
|
<th>Longest pulse</th>
|
|
<th>Lowest frequency</th>
|
|
</tr>
|
|
<tr>
|
|
<td>62.5KHz</td>
|
|
<td>1</td>
|
|
<td>16us</td>
|
|
<td>1.048s</td>
|
|
<td>0.95Hz</td>
|
|
</tr>
|
|
<tr>
|
|
<td>250KHz</td>
|
|
<td>1</td>
|
|
<td>4us</td>
|
|
<td>262.1ms</td>
|
|
<td>3.81Hz</td>
|
|
</tr>
|
|
<tr>
|
|
<td>62.5KHz</td>
|
|
<td>4</td>
|
|
<td>4us</td>
|
|
<td>262.1ms</td>
|
|
<td>3.81Hz</td>
|
|
</tr>
|
|
<tr>
|
|
<td>250KHz</td>
|
|
<td>4</td>
|
|
<td>1us</td>
|
|
<td>65.54ms</td>
|
|
<td>15.26Hz</td>
|
|
</tr>
|
|
<tr>
|
|
<td>62.5KHz</td>
|
|
<td>16</td>
|
|
<td>1us</td>
|
|
<td>65.54ms</td>
|
|
<td>15.26Hz</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2MHz</td>
|
|
<td>1</td>
|
|
<td>500ns</td>
|
|
<td>32.77ms</td>
|
|
<td>30.52Hz</td>
|
|
</tr>
|
|
<tr>
|
|
<td>250KHz</td>
|
|
<td>16</td>
|
|
<td>250us</td>
|
|
<td>16.38ms</td>
|
|
<td>61.0Hz</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2MHz</td>
|
|
<td>4</td>
|
|
<td>125ns</td>
|
|
<td>8.192ms</td>
|
|
<td>122.1Hz</td>
|
|
</tr>
|
|
<tr>
|
|
<td>16MHz</td>
|
|
<td>1</td>
|
|
<td>62.5ns</td>
|
|
<td>4.096ms</td>
|
|
<td>244.1Hz</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2MHz</td>
|
|
<td>16</td>
|
|
<td>31.25ns</td>
|
|
<td>2.048ms</td>
|
|
<td>488.3Hz</td>
|
|
</tr>
|
|
<tr>
|
|
<td>16MHz</td>
|
|
<td>4</td>
|
|
<td>15.6ns</td>
|
|
<td>1.024ms</td>
|
|
<td>976.6Hz</td>
|
|
</tr>
|
|
<tr>
|
|
<td>16MHz</td>
|
|
<td>16</td>
|
|
<td>3.9ns</td>
|
|
<td>256us</td>
|
|
<td>3.906KHz</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p>
|
|
In some applications it is desirable to measure every incoming pulse rather
|
|
than repetitively query the result of the last measurement. For that purpose
|
|
the <A HREF="../../../ioio/lib/api/PulseInput.html#waitPulseGetDuration()"><CODE>waitPulseGetDuration()</CODE></A> method exists: every incoming pulse width
|
|
is pushed into a small internal queue from which it can be read. The client
|
|
waits for data to be available, then reads it and data that comes in in the
|
|
meanwhile is stored. The queue has limited size, so it is important to read
|
|
quickly if no pulses are to be lost. Note that once a pulse is detected, the
|
|
next one must have its leading edge at least 5ms after the leading edge of
|
|
the current one, or else it will be skipped. This throttling has been
|
|
introduced on purpose, in order to prevent saturation the communication
|
|
channel when the input signal is very high frequency. Effectively, this means
|
|
that the maximum sample rate is 200Hz. This rate has been chosen as it
|
|
enables measure R/C servo signals without missing pulses.
|
|
|
|
<p>
|
|
Typical usage (servo signal pulse width measurement):
|
|
|
|
<pre>
|
|
<code>// Open pulse input at 16MHz, double-precision
|
|
PulseInput in = ioio.openPulseInput(3, PulseMode.POSITIVE);
|
|
...
|
|
float widthSec = in.getDuration();
|
|
OR:
|
|
float widthSec = in.waitPulseGetDuration();
|
|
...
|
|
in.close(); // pin 3 can now be used for something else.
|
|
</code>
|
|
</pre>
|
|
|
|
<p>
|
|
Typical usage (frequency measurement):
|
|
|
|
<pre>
|
|
<code>// Signal is known to be slightly over 150Hz. Single precision can be used.
|
|
PulseInput in = ioio.openPulseInput(3,
|
|
ClockRate.RATE_2MHz,
|
|
PulseMode.FREQ_SCALE_4,
|
|
false);
|
|
...
|
|
float freqHz = in.getFrequency();
|
|
...
|
|
in.close(); // pin 3 can now be used for something else.
|
|
</code>
|
|
</pre>
|
|
<P>
|
|
|
|
<P>
|
|
<HR>
|
|
|
|
<P>
|
|
<!-- ======== NESTED CLASS SUMMARY ======== -->
|
|
|
|
<A NAME="nested_class_summary"><!-- --></A>
|
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
|
<B>Nested Class Summary</B></FONT></TH>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE>static class</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../ioio/lib/api/PulseInput.ClockRate.html" title="enum in ioio.lib.api">PulseInput.ClockRate</A></B></CODE>
|
|
|
|
<BR>
|
|
Suported clock rate enum.</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE>static class</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../ioio/lib/api/PulseInput.PulseMode.html" title="enum in ioio.lib.api">PulseInput.PulseMode</A></B></CODE>
|
|
|
|
<BR>
|
|
An enumeration for describing the module's operating mode.</TD>
|
|
</TR>
|
|
</TABLE>
|
|
|
|
<!-- ========== METHOD SUMMARY =========== -->
|
|
|
|
<A NAME="method_summary"><!-- --></A>
|
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
|
<B>Method Summary</B></FONT></TH>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE> float</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../ioio/lib/api/PulseInput.html#getDuration()">getDuration</A></B>()</CODE>
|
|
|
|
<BR>
|
|
Gets the pulse duration in case of pulse measurement mode, or the period
|
|
in case of frequency mode.</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE> float</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../ioio/lib/api/PulseInput.html#getFrequency()">getFrequency</A></B>()</CODE>
|
|
|
|
<BR>
|
|
Gets the momentary frequency of the measured signal.</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE> float</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../ioio/lib/api/PulseInput.html#waitPulseGetDuration()">waitPulseGetDuration</A></B>()</CODE>
|
|
|
|
<BR>
|
|
Reads a single measurement from the queue.</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<A NAME="methods_inherited_from_class_ioio.lib.api.Closeable"><!-- --></A>
|
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
|
<TH ALIGN="left"><B>Methods inherited from interface ioio.lib.api.<A HREF="../../../ioio/lib/api/Closeable.html" title="interface in ioio.lib.api">Closeable</A></B></TH>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD><CODE><A HREF="../../../ioio/lib/api/Closeable.html#close()">close</A></CODE></TD>
|
|
</TR>
|
|
</TABLE>
|
|
|
|
<P>
|
|
|
|
<!-- ============ METHOD DETAIL ========== -->
|
|
|
|
<A NAME="method_detail"><!-- --></A>
|
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
|
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
|
<B>Method Detail</B></FONT></TH>
|
|
</TR>
|
|
</TABLE>
|
|
|
|
<A NAME="getDuration()"><!-- --></A><H3>
|
|
getDuration</H3>
|
|
<PRE>
|
|
float <B>getDuration</B>()
|
|
throws java.lang.InterruptedException,
|
|
<A HREF="../../../ioio/lib/api/exception/ConnectionLostException.html" title="class in ioio.lib.api.exception">ConnectionLostException</A></PRE>
|
|
<DL>
|
|
<DD>Gets the pulse duration in case of pulse measurement mode, or the period
|
|
in case of frequency mode. When scaling is used, this is compensated for
|
|
here, so the duration of a single cycle will be returned.
|
|
<p>
|
|
The first call to this method may block shortly until the first data
|
|
update arrives. The client may interrupt the calling thread.
|
|
<P>
|
|
<DD><DL>
|
|
</DL>
|
|
</DD>
|
|
<DD><DL>
|
|
|
|
<DT><B>Returns:</B><DD>The duration, in seconds.
|
|
<DT><B>Throws:</B>
|
|
<DD><CODE>java.lang.InterruptedException</CODE> - The calling thread has been interrupted.
|
|
<DD><CODE><A HREF="../../../ioio/lib/api/exception/ConnectionLostException.html" title="class in ioio.lib.api.exception">ConnectionLostException</A></CODE> - The connection with the IOIO has been lost.</DL>
|
|
</DD>
|
|
</DL>
|
|
<HR>
|
|
|
|
<A NAME="waitPulseGetDuration()"><!-- --></A><H3>
|
|
waitPulseGetDuration</H3>
|
|
<PRE>
|
|
float <B>waitPulseGetDuration</B>()
|
|
throws java.lang.InterruptedException,
|
|
<A HREF="../../../ioio/lib/api/exception/ConnectionLostException.html" title="class in ioio.lib.api.exception">ConnectionLostException</A></PRE>
|
|
<DL>
|
|
<DD>Reads a single measurement from the queue. If the queue is empty, will
|
|
block until more data arrives. The calling thread may be interrupted in
|
|
order to abort the call. See interface documentation for further
|
|
explanation regarding the read queue.
|
|
<p>
|
|
This method may not be used if the interface has was opened in frequency
|
|
mode.
|
|
<P>
|
|
<DD><DL>
|
|
</DL>
|
|
</DD>
|
|
<DD><DL>
|
|
|
|
<DT><B>Returns:</B><DD>The duration, in seconds.
|
|
<DT><B>Throws:</B>
|
|
<DD><CODE>java.lang.InterruptedException</CODE> - The calling thread has been interrupted.
|
|
<DD><CODE><A HREF="../../../ioio/lib/api/exception/ConnectionLostException.html" title="class in ioio.lib.api.exception">ConnectionLostException</A></CODE> - The connection with the IOIO has been lost.</DL>
|
|
</DD>
|
|
</DL>
|
|
<HR>
|
|
|
|
<A NAME="getFrequency()"><!-- --></A><H3>
|
|
getFrequency</H3>
|
|
<PRE>
|
|
float <B>getFrequency</B>()
|
|
throws java.lang.InterruptedException,
|
|
<A HREF="../../../ioio/lib/api/exception/ConnectionLostException.html" title="class in ioio.lib.api.exception">ConnectionLostException</A></PRE>
|
|
<DL>
|
|
<DD>Gets the momentary frequency of the measured signal. When scaling is
|
|
used, this is compensated for here, so the true frequency of the signal
|
|
will be returned.
|
|
<p>
|
|
The first call to this method may block shortly until the first data
|
|
update arrives. The client may interrupt the calling thread.
|
|
<P>
|
|
<DD><DL>
|
|
</DL>
|
|
</DD>
|
|
<DD><DL>
|
|
|
|
<DT><B>Returns:</B><DD>The frequency, in Hz.
|
|
<DT><B>Throws:</B>
|
|
<DD><CODE>java.lang.InterruptedException</CODE> - The calling thread has been interrupted.
|
|
<DD><CODE><A HREF="../../../ioio/lib/api/exception/ConnectionLostException.html" title="class in ioio.lib.api.exception">ConnectionLostException</A></CODE> - The connection with the IOIO has been lost.</DL>
|
|
</DD>
|
|
</DL>
|
|
<!-- ========= END OF CLASS DATA ========= -->
|
|
<HR>
|
|
|
|
|
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
<A NAME="navbar_bottom"><!-- --></A>
|
|
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
|
<TR>
|
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
|
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
|
<TR ALIGN="center" VALIGN="top">
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/PulseInput.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
|
</TR>
|
|
</TABLE>
|
|
</TD>
|
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
|
</EM>
|
|
</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
|
<A HREF="../../../ioio/lib/api/IOIOFactory.html" title="class in ioio.lib.api"><B>PREV CLASS</B></A>
|
|
<A HREF="../../../ioio/lib/api/PulseInput.ClockRate.html" title="enum in ioio.lib.api"><B>NEXT CLASS</B></A></FONT></TD>
|
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
|
<A HREF="../../../index.html?ioio/lib/api/PulseInput.html" target="_top"><B>FRAMES</B></A>
|
|
<A HREF="PulseInput.html" target="_top"><B>NO FRAMES</B></A>
|
|
<SCRIPT type="text/javascript">
|
|
<!--
|
|
if(window==top) {
|
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
|
}
|
|
//-->
|
|
</SCRIPT>
|
|
<NOSCRIPT>
|
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
|
</NOSCRIPT>
|
|
|
|
|
|
</FONT></TD>
|
|
</TR>
|
|
<TR>
|
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
|
SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
|
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
|
</TR>
|
|
</TABLE>
|
|
<A NAME="skip-navbar_bottom"></A>
|
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
|
|
<HR>
|
|
|
|
</BODY>
|
|
</HTML>
|