Information
page 7
Released 10/2008 Rights reserv ed f or change in technical data! HYGROSENS INSTRUMENTS GmbH Postf ach 1054 D-79839 Löf f ingen Tel: +49 7654 808969-0 Fax: +49 7654 808969-9
ZACWIRE
TM
DIGITAL OUTPUT
WAIT_FALL: BTFSS PORTB,0 ;; WAIT FOR FALL OF ZAC WIRE
GOTO PAUSE_STRB ;; NEXT FALLING EDGE OCCURRED
INCFS
Z
TIME_OUT,1 ;; CHECK IF EDGE TIME OUT
COUNTER OVERFLOWED
GOTO RTI ;; EDGE TIME OUT OCCURRED.
GOTO WAIT_FALL
PAUSE_STRB: INCF STRB_CNT,1 ;; INCREMENT THE STROBE
COUNTER
MOVF TSTROBE,0 ;; MOVE TSTROBE TO W REG
SUBWF STRB_CNT,0 ;; COMPARE STRB_CNT TO TSTROBE
BTFSS STATUS,Z ;; IF EQUAL THEN IT IS TIME TO
STROBE
GOTO PAUSE_STRB ;; ZAC WIRE FOR DATA,
OTHERWISE KEEP COUNTING
LENGTH OF THIS LOOP IS 6-STATES. THIS HAS TO MATCH THE LENGTH
OF THE LOOP THAT ACQUIRED TSTROBE
BCF STATUS,C ;; CLEAR THE CARRY
BTFSC PORTB,0 ;; SAMPLE THE ZAC WIRE INPUT
BSF STATUS,C ;; IF ZAC WIRE WAS HIGH THEN
SET THE CARRY
RLF INDF,1 ;; ROTATE CARRY=ZAC WIRE INTO
LSB OF REGISTER
;; THAT FSR CURRENTLY POINTS
TO
CLRF TIME_OUT ;; CLEAR THE EDGE TIMEOUT
COUNTER
WAIT_RISE: BTFSC PORTB,0 ;; IF RISE HAS OCCURRED THEN
WE ARE DONE
GOTO NEXT_BIT
INCFS
Z
TIME_OUT,1 ;; INCREMENT THE EDGE TIME OUT
COUNTER
GOTO WAIT_RISE
GOTO RTI ;; EDGE TIME OUT OCCURRED.
NEXT_BIT: INCF BIT_CNT,1 ;; INCREMENT BIT COUNTER
MOVLW 0X08 ;; THERE ARE 8-BITS OF DATA
SUBWF BIT_CNT,0 ;; TEST IF BIT COUNTER AT
LIMIT
BTFSS STATUS,Z ;; IF NOT ZERO THEN GET NEXT
BIT
GOTO BIT_LOOP
CLRF TIME_OUT ;; CLEAR THE EDGE TIME OUT
COUNTER
WAIT_PF: BTFSS PORTB,0 ;; WAIT FOR FALL OF PARITY
GOTO P_RISE