142 lines
7.6 KiB
HTML
142 lines
7.6 KiB
HTML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||
<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" MadCap:lastBlockDepth="6" MadCap:lastHeight="94" MadCap:lastWidth="853" MadCap:disableMasterStylesheet="true" MadCap:tocPath="" MadCap:InPreviewMode="false" MadCap:PreloadImages="false" MadCap:RuntimeFileType="Topic" MadCap:TargetType="WebHelp" lang="en-us" xml:lang="en-us" MadCap:PathToHelpSystem="../../../" MadCap:HelpSystemFileName="Default.xml" MadCap:SearchType="Stem">
|
||
<head><title>TOGGLE</title>
|
||
<link href="../../SkinSupport/MadCap.css" rel="stylesheet" />
|
||
<link href="../../Resources/Stylesheets/BSE_Help.css" rel="stylesheet" />
|
||
<script src="../../SkinSupport/MadCapAll.js" type="text/javascript">
|
||
</script>
|
||
</head>
|
||
<body>
|
||
<h1 class="code">TOGGLE</h1>
|
||
<div class="ImagePlusCaption">
|
||
<div class="Col2">
|
||
<p>
|
||
<img src="../../graphics/pgm_icon1.gif" border="0" alt="BS1 icon" title="BS1 icon" />
|
||
<img src="../../graphics/pgm_icon2.gif" border="0" alt="BS2 icon" title="BS2 icon" />
|
||
<img src="../../graphics/pgm_icon2e.gif" border="0" alt="BS2e icon" title="BS2e icon" />
|
||
<img src="../../graphics/pgm_icon2sx.gif" border="0" alt="BS2sx icon" title="BS2sx icon" />
|
||
<img src="../../graphics/pgm_icon2p.gif" border="0" alt="BS2p icon" title="BS2p icon" />
|
||
<img src="../../graphics/pgm_icon2pe.gif" border="0" alt="BS2pe icon" title="BS2pe icon" />
|
||
<img src="../../graphics/pgm_icon2px.gif" border="0" alt="BS2px icon" title="BS2px icon" />
|
||
</p>
|
||
</div>
|
||
<p style="text-align: right;"><a href="../ExampleTopics/ToggleEx.htm" target="" title="" alt="" class="MCXref_0">TOGGLE Examples</a>
|
||
</p>
|
||
<p> </p>
|
||
</div>
|
||
<p class="clear"> </p>
|
||
<p> </p>
|
||
<p class="PlainText">Syntax: <span class="keyword_in_text">TOGGLE</span> <![CDATA[ ]]><i>Pin</i></p>
|
||
<h2>Function</h2>
|
||
<p class="PlainText">Invert the state of an output pin.
|
||
|
||
</p>
|
||
<ul>
|
||
<li value="1"><b><i>Pin</i></b> is a variable/constant/expression* (0 – 15) that
|
||
specifies which I/O pin to set high. This pin will be placed into output
|
||
mode.</li>
|
||
</ul>
|
||
<p class="PlainText">*<img src="../../graphics/bs1note.gif" style="vertical-align: super;" /> Note: expressions are not allowed as arguments on the BS1. The range
|
||
of the <i>Pin</i> argument on the BS1 is 0–7.</p>
|
||
<h2>Quick Facts</h2>
|
||
<table cellpadding="4" cellspacing="0" border="1" style="caption-side: top;width: 100%;">
|
||
<col />
|
||
<col />
|
||
<tr bgcolor="#CFCFCF">
|
||
<td width="20%" align="center"> </td>
|
||
<td width="40%" align="center">BS1</td>
|
||
<td width="40%" align="center">All BS2 models</td>
|
||
</tr>
|
||
<tr>
|
||
<td width="20%" align="center" bgcolor="#CFCFCF">Affected Register</td>
|
||
<td width="40%" align="center">PINS</td>
|
||
<td width="40%" align="center">OUTS</td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center" bgcolor="#CFCFCF">Related Commands</td>
|
||
<td align="center" colspan="2">
|
||
<p colspan="2" align="center"><a href="HIGH.htm" target="" title="" alt="" class="MCXref_0">HIGH</a>, <a href="LOW.htm" target="" title="" alt="" class="MCXref_0">LOW</a></p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
<h2>Explanation</h2>
|
||
<p class="PlainText"><span class="keyword_in_text">TOGGLE</span> sets a pin to output mode and inverts the output state of the pin,
|
||
changing 0 to 1 and 1 to 0.</p>
|
||
<p class="PlainText">In some situations <span class="keyword_in_text">TOGGLE</span> may appear to have no effect on a pin's state.
|
||
For example, suppose pin 2 is in input mode and pulled to +5V by a 10 kΩ
|
||
resistor. Then the following code executes:</p>
|
||
<p>
|
||
<img src="../../graphics/bs1_inline.gif" border="0">
|
||
</img>
|
||
</p><pre class="BScode" xml:space="preserve">
|
||
Main:
|
||
DIR2 = 0 ' pin 2 in input mode
|
||
PIN2 = 0 ' pin 2 output driver low
|
||
DEBUG PIN2 ' show state of pin 2
|
||
TOGGLE 2 ' toggle pin 2
|
||
DEBUG PIN2 ' show state of pin 2
|
||
END
|
||
</pre>
|
||
<p>
|
||
<img src="../../graphics/bs2all_inline.gif" border="0">
|
||
</img>
|
||
</p><pre class="BScode" xml:space="preserve">
|
||
Main:
|
||
DIR2 = 0 ' pin 2 in input mode
|
||
OUT2 = 0 ' pin 2 output driver low
|
||
DEBUG ? IN2 ' show state of pin 2
|
||
TOGGLE 2 ' toggle pin 2
|
||
DEBUG ? IN2 ' show state of pin 2
|
||
END
|
||
</pre>
|
||
<p class="PlainText">The state of pin 2 doesn't change; it's high (due to the pull-up resistor)
|
||
before <span class="keyword_in_text">TOGGLE</span>, and it's high (due to the pin being output high) afterward.
|
||
The point is that <span class="keyword_in_text">TOGGLE</span> works on the OUTS register, which may not match
|
||
the pin's state when the pin is initially an input. To guarantee that the state
|
||
actually changes, regardless of the initial input or output mode, do this:</p>
|
||
<p>
|
||
<img src="../../graphics/bs1_inline.gif" border="0">
|
||
</img>
|
||
</p><pre class="BScode" xml:space="preserve">
|
||
PIN2 = PIN2 ' make output driver match pin state
|
||
TOGGLE 2 ' then toggle
|
||
</pre>
|
||
<p>
|
||
<img valign="bottom" src="../../graphics/bs2all_inline.gif" border="0">
|
||
</img>
|
||
</p><pre class="BScode" xml:space="preserve">
|
||
OUT2 = IN2 ' make output driver match pin state
|
||
TOGGLE 2 ' then toggle
|
||
</pre>
|
||
<div class="Col2">
|
||
<div class="MasterFoot">
|
||
<p MadCap:conditions="BSEconditions.BSEWebHelp (Primary)-INCLUDE"><a href="../../HomeTopics/HomePage.htm">Go to Welcome page</a>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="Col2">
|
||
<div class="MasterFoot">
|
||
<p style="text-align: right;"><span class="ContactInfoProjectName">BASIC Stamp Help</span> <![CDATA[ ]]><span class="ContactInfoVersion#">Version 2.5.4</span> <![CDATA[ ]]></p>
|
||
<p style="text-align: right;">Copyright © <span class="ContactInfoCompanyName">Parallax Inc.</span></p>
|
||
<p style="text-align: right;"><span class="SystemShortDate">8/8/2012</span>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<script type="text/javascript">/* <![CDATA[ */
|
||
|
||
var _gaq = _gaq || [];
|
||
_gaq.push(['_setAccount', 'UA-285614-1']);
|
||
_gaq.push(['_trackPageview']);
|
||
|
||
(function() {
|
||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||
})();
|
||
|
||
/* ]]> */</script>
|
||
<script type="text/javascript" src="../../SkinSupport/MadCapBodyEnd.js">
|
||
</script>
|
||
</body>
|
||
</html> |