' 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