por fabim » 23 Fev 2007 12:58
ops tinha me esquecido deste post.rss
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
AQUI começa a rotina de recepção
;*********************************************
RECEIVE: ;SINCRONISMO
MOVLW .8 ; 4 MHZ / .16 ;8 MHZ ;.4
MOVWF CNTH
MOVLW .200
MOVWF CNTL
BTFSC RFin
GOTO FIM_RC
DECFSZ CNTL,F
GOTO $-3
DECFSZ CNTH,F
GOTO $-7
SINCRONISMO_OK
MOVLW 018H ;(24D)
MOVWF NBITS
CLRF BYTE1
CLRF BYTE2
CLRF BYTE3
MOVLW .8 ; 4 MHZ / .16 ;8 MHZ ;.5
MOVWF CNTH
MOVLW .200
MOVWF CNTL
BTFSC RFin ;Espera entrada ficar 1
GOTO LERBITBASE ;
DECFSZ CNTL,F
GOTO $-3
DECFSZ CNTH,F
GOTO $-7
GOTO FIM_RC
LERBITBASE
MOVLW 0x7F ; 4 MHZ / 0X3D ;8 MHZ
MOVWF BTEMPO
BTFSS RFin ;[2]
GOTO CALC_TBASE ;[0]
INCFSZ BTEMPO,F ;[1]
GOTO $-3 ;[2]
GOTO FIM_RC
CALC_TBASE
MOVLW 0x7F ; 4 MHZ / 0X3D ;8 MHZ
SUBWF BTEMPO,F ;Recupera Base de Tempo Bit Inteiro
AGUARDAR_LW
CLRC
RRF BTEMPO,W ;
MOVWF CNTL ;
MOVF BTEMPO,W ;
MOVWF CNTH ;
RLF CNTH,W
MOVWF AUX2 ;AUX2=1/2 Te
BCF STATUS,C ;
RRF BYTE3,F ;
RRF BYTE2,F ;
RRF BYTE1,F ;
BTFSS RFin ; [2]
GOTO RECEBENDO_BITS ; [0]
DECFSZ AUX2,F ; [1]
GOTO $-3 ; [2]
GOTO FIM_RC
RECEBENDO_BITS
GOTO DL1
D_DL1
BTFSC RFin
GOTO FIM_RC
GOTO DL2
D_DL2
BCF BYTE3,7
BTFSS RFin
BSF BYTE3,7
GOTO DL3
D_DL3
BTFSS RFin
GOTO FIM_RC
DECFSZ NBITS,F
GOTO AGUARDAR_LW
GOTO RECEBEU_OK
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DL1:
DECFSZ CNTL,F ;[1]
GOTO $+2 ;[2]
GOTO $+2
GOTO $-3 ;[2]
CLRC
RRF CNTH,W ;
MOVWF CNTL ;Meio bit
GOTO D_DL1
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DL2
MOVFW CNTH
MOVWF AUX
DECFSZ AUX,F ;[1]
GOTO $+2 ;[2]
GOTO D_DL2
GOTO $-3 ;[2]
;***************************************************************
DL3
MOVFW CNTH
MOVWF AUX
DECFSZ AUX,F ;[1]
GOTO $+2 ;[2]
GOTO D_DL3
GOTO $-3 ;[2]
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
; ATÉ AQUI:
; Recebeu todos os 24 bits em Byte1,Byte2,Byte3
; Byte1=LSB
; Byte3=MSB
; Os botões do controle estarão nos bit's 6,7 do
; byte3
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Aqui termina
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
RECEBEU_OK:
BTFSS APRENDER ; É PARA APRENDER ?
GOTO COMPARA ; N- COMPARA APENAS E TOMA A DECISÃO
GOTO APRENDE ; S- GRAVA NA EEPROM
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
so da uma bizoiada no nome das var... e rfin.. é o pino que vai receber.
Fabim