Code:
' {$STAMP BS2}
' {$PBASIC 2.5}
hz PIN 0 '120hz input on pin 0
bttn PIN 1 'Button input on pin 1
prev VAR Bit 'Previous button state
prevhz VAR Bit 'Previous 120hz state
counthz VAR Byte 'hertz count
onn CON 1 'Active High
off CON 0
Main:
DO
DEBUG ? counthz
IF bttn = off THEN
prev = off 'button isn't pressed set prev state to 0
ENDIF
IF bttn = onn AND prev = off THEN 'button is pressed and prev state was 0
counthz = off 'reset 120hz pulse counter
prev = onn 'set previous state to 1
ENDIF
IF hz = off THEN
prevhz = off '120hz line is in low mode, set prevhz state to 0
ENDIF
IF hz = onn AND prevhz = off THEN '120hz is in pulse state, and previous state was 0
counthz = counthz + 1 'counthz adds 1 because cycle is complete.
prevhz = onn 'set prevhz state to 1
ENDIF
LOOP
Bookmarks