FREQOUT Example

BS2 icon BS2e icon BS2sx icon BS2p icon BS2pe icon BS2px icon

Syntax: FREQOUT

 

 

 

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

Go to Welcome page

BASIC Stamp Help Version 2.5.4

Copyright © Parallax Inc.

8/8/2012