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.
' FREQOUT.BS2 ' This program demonstrates a sound-effects generation by the BASIC Stamp. ' Conditional compilation sets timing and frequency adjustment factors so ' that the output will sound the same on any BS2 module. ' {$STAMP BS2} ' {$PBASIC 2.5} Spkr PIN 10 ' output pin for FREQOUT #SELECT $STAMP #CASE BS2, BS2E TmAdj CON $100 ' x 1.0 (time adjust) FrAdj CON $100 ' x 1.0 (freq adjust) #CASE BS2SX TmAdj CON $280 ' x 2.5 FrAdj CON $066 ' x 0.4 #CASE BS2P TmAdj CON $3C5 ' x 3.77 FrAdj CON $044 ' x 0.265 #CASE BS2PE TmAdj CON $100 ' x 1.0 FrAdj CON $0A9 ' x 0.66 #CASE BS2PX TmAdj CON $607 ' x 6.02 FrAdj CON $02A ' x 0.166 #ENDSELECT Main: DEBUG "Let's make a call...", CR ' combine 350 Hz & 440 Hz for dial tone FREQOUT Spkr, 2000 */ TmAdj, 350 */ FrAdj, 440 */ FrAdj ' dial number (digits 150 ms on, 25 ms off) DTMFOUT Spkr, 150 */ TmAdj, 25, [5, 5, 5, 1, 2, 1, 2] PAUSE 500 ' bad connection (SIT sequence) FREQOUT Spkr, 375 */ TmAdj, 985 */ FrAdj FREQOUT Spkr, 375 */ TmAdj, 1371 */ FrAdj FREQOUT Spkr, 375 */ TmAdj, 1777 */ FrAdj DEBUG "Oops! -- try again...", CR PAUSE 1000 DTMFOUT Spkr, 150 */ TmAdj, 25, [5, 5, 5, 2, 2, 2, 2] DEBUG "Ringing" FREQOUT Spkr, 2000 */ TmAdj, 440 */ FrAdj, 480 */ FrAdj PAUSE 4000 FREQOUT Spkr, 2000 */ TmAdj, 440 */ FrAdj, 480 */ FrAdj INPUT Spkr DEBUG CLS, "Done." END
BASIC Stamp Help Version 2.5.4
Copyright © Parallax Inc.
8/8/2012