Hello....
If someone have interest in HT6P20B decoding, feel free to use the code below.
Is ugly to see, but works fine.
And if someone help me to let this code more short and clean, antecipately thanks.
Carlos W. Rett
________________________________________________
INCLUDE "BS2DEFS.BAS"
DEFINE CHAR_PACING 1000 'Serout character pacing in us
DEFINE PULSIN_MAX 6200
DEFINE OSC 20 'Oscilator Speed
ADCON1 = 7 ' Set PORTA and PORTE to digital
';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
'Define nome de variáveis
BITVALUE VAR WORD
ADDRESS VAR WORD
CODE VAR BYTE
BTRES VAR BIT
IRIN1 VAR PORTA.0
SERPC VAR PORTA.1
pause 100
CLEAR 'Clear All Variables
';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
'Port Adjust
TRISA = %11111101 'PortA Adjusted .
SEROUT2 SERPC,16390,["--Program initialized--",13,10] 'SERIAL Speed = 38400
Start:
CLEAR
PULSIN IRIN1,0,BITVALUE
IF (BITVALUE > 5400) and (bitvalue < 6100) THEN
Goto LEDADOS
else
goto Start
endif
LEDADOS:
GOSUB TESTABIT
ADDRESS.15 = BTRES
GOSUB TESTABIT
ADDRESS.14 = BTRES
GOSUB TESTABIT
ADDRESS.13 = BTRES
GOSUB TESTABIT
ADDRESS.12 = BTRES
GOSUB TESTABIT
ADDRESS.11 = BTRES
GOSUB TESTABIT
ADDRESS.10 = BTRES
GOSUB TESTABIT
ADDRESS.9 = BTRES
GOSUB TESTABIT
ADDRESS.8 = BTRES
GOSUB TESTABIT
ADDRESS.7 = BTRES
GOSUB TESTABIT
ADDRESS.6 = BTRES
GOSUB TESTABIT
ADDRESS.5 = BTRES
GOSUB TESTABIT
ADDRESS.4 = BTRES
GOSUB TESTABIT
ADDRESS.3 = BTRES
GOSUB TESTABIT
ADDRESS.2 = BTRES
GOSUB TESTABIT
ADDRESS.1 = BTRES
GOSUB TESTABIT
ADDRESS.0 = BTRES
GOSUB TESTABIT
CODE.7 = BTRES
GOSUB TESTABIT
CODE.6 = BTRES
GOSUB TESTABIT
CODE.5 = BTRES
GOSUB TESTABIT
CODE.4 = BTRES
GOSUB TESTABIT
CODE.3 = BTRES
GOSUB TESTABIT
CODE.2 = BTRES
GOSUB TESTABIT
CODE.1 = BTRES
GOSUB TESTABIT
CODE.0 = BTRES
GOSUB TESTABIT
SEROUT2 SERPC,16390,["Address= ",BIN16 ADDRESS," Code = ",BIN8 CODE,13,10]
GOTO Start
TESTABIT:
BITVALUE = 0
PULSIN IRIN1, 1, BITVALUE
IF (BITVALUE < 200) OR (BITVALUE > 600) THEN
SEROUT2 SERPC,16390,["Interrupted Code or Garbage ",13,10]
GOTO Start
ENDIF
IF BITVALUE < 400 THEN
Btres = 1
ELSE
Btres = 0
ENDIF
RETURN
End




Bookmarks