115 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			5.7 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>DTMFOUT Example</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>DTMFOUT Example</h1>
 | 
						|
        <div class="ImagePlusCaption">
 | 
						|
            <div class="Col2">
 | 
						|
                <p>
 | 
						|
                    <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;">Syntax: <a href="../Commands/DTMFOUT.htm" target="" title="" alt="" class="MCXref_0" xrefformat="{paratext}">DTMFOUT</a></p>
 | 
						|
            <p> </p>
 | 
						|
        </div>
 | 
						|
        <p class="clear"> </p>
 | 
						|
        <p class="PlainText"> </p>
 | 
						|
        <p>NOTE: The example below is written for the BS2 and will run on any of the BS2-family modules. Modify the $STAMP directive (as required) before downloading to the BS2e, BS2sx, BS2p, BS2pe, or BS2px.</p><pre class="BScode" xml:space="preserve"> DTMFOUT.BS2
 | 
						|
' This demo program is a rudimentary memory dialer. Since DTMF digits fit
 | 
						|
' within a nibble (four bits), the program below packs two DTMF digits into
 | 
						|
' each byte of three EEPROM data tables. The end of a phone number is marked
 | 
						|
' by the nibble $F, since this is not a valid phone-dialing digit.
 | 
						|
' Conditional compilation sets the timing adjustment factor so that the
 | 
						|
' output will sound the same on any BS2 module.
 | 
						|
 | 
						|
' {$STAMP BS2}
 | 
						|
' {$PBASIC 2.5}
 | 
						|
 | 
						|
Spkr            PIN     10              ' DTMF output on pin 10
 | 
						|
 | 
						|
#SELECT $STAMP
 | 
						|
  #CASE BS2, BS2E, BS2PE
 | 
						|
    TmAdj       CON     $100            ' x 1.0 (time adjust)
 | 
						|
  #CASE BS2SX
 | 
						|
    TmAdj       CON     $280            ' x 2.5
 | 
						|
  #CASE BS2P
 | 
						|
    TmAdj       CON     $3C5            ' x 3.77
 | 
						|
  #CASE BS2PX
 | 
						|
    TmAdj       CON     $605            ' x 6.02
 | 
						|
#ENDSELECT
 | 
						|
 | 
						|
eeLoc           VAR     Byte            ' EEPROM address of stored number
 | 
						|
eeByte          VAR     Byte            ' Byte containing two DTMF digits
 | 
						|
dtDig           VAR     eeByte.NIB1     ' Digit to dial
 | 
						|
phone           VAR     Nib             ' Pick a phone #
 | 
						|
hiLo            VAR     Bit             ' Bit to select upper and lower nib
 | 
						|
 | 
						|
Parallax        DATA    $19,$16,$62,$48,$33,$3F  ' Phone: 1-916-624-8333
 | 
						|
ParallaxFax     DATA    $19,$16,$62,$48,$00,$3F  ' Phone: 1-916-624-8003
 | 
						|
Information     DATA    $15,$20,$55,$51,$21,$2F  ' Phone: 1-520-555-1212
 | 
						|
 | 
						|
 | 
						|
Main:
 | 
						|
  FOR phone = 0 TO 2
 | 
						|
    ' retrieve address
 | 
						|
    LOOKUP phone, [Parallax, ParallaxFax, Information], eeLoc
 | 
						|
    GOSUB Dial_Number
 | 
						|
    PAUSE 2000
 | 
						|
  NEXT
 | 
						|
  END
 | 
						|
 | 
						|
Dial_Number:
 | 
						|
  DO
 | 
						|
    READ eeLoc, eeByte                  ' Retrieve byte from EEPROM
 | 
						|
    eeLoc = eeLoc + 1                   ' point to next pair of digits
 | 
						|
    FOR hiLo = 0 TO 1                   ' Dial upper and lower digits
 | 
						|
      IF (dtDig = $F) THEN EXIT         ' Hex $F is end-of-number flag
 | 
						|
      DTMFOUT Spkr,                     ' dial digit
 | 
						|
              150 */ TmAdj, 25, [dtDig] ' 150 ms on, 25 ms off
 | 
						|
      eeByte = eeByte << 4              ' Shift in next digit
 | 
						|
    NEXT
 | 
						|
  LOOP UNTIL (dtDig = $F)
 | 
						|
  RETURN
 | 
						|
</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> |