This repository has been archived on 2024-09-22. You can view files and clone it, but cannot push or open issues or pull requests.
pbi-ide/help/BasicStampHelp/Content/LanguageTopics/Commands/TOGGLE.htm

142 lines
7.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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>&#160;</p>
</div>
<p class="clear">&#160;</p>
<p>&#160;</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 07.</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">&#160;</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 ©&#160;<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>