' 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
BASIC Stamp Help Version 2.5.4
Copyright © Parallax Inc.
8/8/2012