PULSIN Example

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

Syntax: PULSIN

 

 

 

' PULSIN.BS1
' This program uses PULSIN to measure a pulse generated by discharging a
' 0.1 uF capacitor through a 1K resistor. Pressing the switch generates
' the pulse, which should ideally be approximately 120 us (12 PULSIN units
' of 10 us) long. Variations in component values may produce results that
' are up to 10 units off from this value. For more information on calculating
' resistor-capacitor timing, see the RCTIME command.

' {$STAMP BS1}
' {$PBASIC 1.0}

SYMBOL  Pulse           = 7             ' pulse input pin

SYMBOL  time            = W1            ' pulse width (10 uS units)


Main:
  PULSIN Pulse, 1, time                 ' measure positive pulse
  IF time = 0 THEN Main                 ' if 0, try again
  DEBUG CLS, time                       '   else display result
  GOTO Main
  END

 

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.

' PULSIN.BS2
' This program uses PULSIN to measure a pulse generated by discharging a
' 0.1 uF capacitor through a 1K resistor. Pressing the switch generates
' the pulse, which should ideally be approximately 120 us (60 PULSIN units
' of 2 us) long (for BS2 and BS2e). Variations in component values may
' produce results that are up to 10 units off from this value.  For more
' information on calculating resistor-capacitor timing, see the RCTIME
' command.

' {$STAMP BS2}
' {$PBASIC 2.5}

Pulse           PIN     7               ' pulse input pin

#SELECT $STAMP
  #CASE BS2, BS2E, BS2PE
    Scale       CON     $200            ' 2.0 us per unit
  #CASE BS2SX
    Scale       CON     $0CD            ' 0.8 us per unit
  #CASE BS2P
    Scale       CON     $0C0            ' 0.75 us per unit
  #CASE BS2PX
    Scale       CON     $0CF            ' 0.81 us per unit
#ENDSELECT

time            VAR     Word


Main:
  PULSIN Pulse, 1, time                 ' measure positive pulse
  IF (time > 0) THEN                    ' if not 0
    DEBUG HOME,
          DEC time, " units ", CLREOL   ' display raw input
    time = time */ Scale                ' adjust for Stamp
    DEBUG CR,
          DEC time, " us  "             ' display microseconds
  ELSE
    DEBUG CLS, "Out of Range"           ' else error message
  ENDIF
  PAUSE 200
  GOTO Main
  END

Go to Welcome page

BASIC Stamp Help Version 2.5.4

Copyright © Parallax Inc.

8/8/2012