It may be reading one, then executing the GOTO and then continues
to execute below the if thens and repeats at the GoTo STARTPULSE.
<br>
I would make the GOTOs into gosubs with returns, so the code will return
to the next line which is the next sensor.
Code:INCLUDE "modedefs.bas" CMCON = 7 trisio = %00001111 GPIO = 0 DEFINE OSCCAL_1K 1 ' Set OSCCAL for 1K device Define OSC 4 @ DEVICE PIC12f629, XT_OSC @ DEVICE PIC12f629, WDT_ON @ DEVICE PIC12f629, PWRT_ON @ DEVICE PIC12f629, MCLR_OFF @ DEVICE PIC12f629, BOD_ON @ DEVICE PIC12f629, CPD_OFF CODELENGTH VAR BYTE 'BYTE VARIABLE OK - LESS THAN 8 PULSES MEASURED UID VAR BYTE PIN VAR BYTE RXPIN1 Var GPIO.3 Pause 100 'SETTLE DOWN BOTH PIC & IR RECEIVER STARTPULSE: PulsIn GPIO.3,0,CODELENGTH 'MEASURE LOW PULSE (IR LED ON TIME) IF (CODELENGTH > 200) and (CODELENGTH < 400) Then SENSOR1 goto STARTPULSE SENSOR1: RXPIN1 = GPIO.3 pin = 1 GOSUB CODEPULSES SENSOR2: RXPIN1 = GPIO.2 pin = 2 GOSUB CODEPULSES CODEPULSES: PulsIn RXPIN1,0,CODELENGTH IF CODELENGTH > 150 Then LET UID.bit0 = 1 '2MS PULSE IS 1 IF CODELENGTH < 150 Then LET UID.bit0 = 0 '1MS PULSE IS 0 PulsIn RXPIN1,0,CODELENGTH IF CODELENGTH > 150 Then LET UID.bit1 = 1 IF CODELENGTH < 150 Then LET UID.bit1 = 0 PulsIn RXPIN1,0,CODELENGTH IF CODELENGTH > 150 Then LET UID.bit2 = 1 IF CODELENGTH < 150 Then LET UID.bit2 = 0 PulsIn RXPIN1,0,CODELENGTH IF CODELENGTH > 150 Then LET UID.bit3 = 1 IF CODELENGTH < 150 Then LET UID.bit3 = 0 PulsIn RXPIN1,0,CODELENGTH IF CODELENGTH > 150 Then LET UID.bit4 = 1 IF CODELENGTH < 150 Then LET UID.bit4 = 0 PulsIn RXPIN1,0,CODELENGTH IF CODELENGTH > 150 Then LET UID.bit5 = 1 IF CODELENGTH < 150 Then LET UID.bit5 = 0 PulsIn RXPIN1,0,CODELENGTH IF CODELENGTH > 150 Then LET UID.bit6 = 1 IF CODELENGTH < 150 Then LET UID.bit6 = 0 PulsIn RXPIN1,0,CODELENGTH IF CODELENGTH > 150 Then LET UID.bit7 = 1 IF CODELENGTH < 150 Then LET UID.bit7 = 0 IF UID = 247 Then GOSUB LEDON ENDIF codelength = 0 UID = 0 RETURN GoTo STARTPULSE LEDON: High GPIO.0 'LED ON serout 1, N2400,[#PIN," ",#UID,10,13] Pause 500 Low GPIO.0 codelength = 0 UID = 0 GoTo STARTPULSE End




Bookmarks