;Libreria para comunicacion I2C



;S_STAR es la rutina de start 
;S_STOP es la rutina de stop 
;S_BYTE es la rutina de enviar byte 
;R_BYTE es la rutina de recivir byte. 


;-----------------INICIO, CONFIGURACION DE PTOS Y I2C------------------- 
CONFIGURACION
	CALL 	BANK_1 ; TE CAMBIAS AL BANCO 1 
	MOVLW 0FFH 
	MOVWF TRISC 
	MOVLW B'10000000' 
	MOVWF SSPSTAT 
	MOVLW .9 
	MOVWF SSPADD 
	CALL BANK_0 ; TE CAMBIAS AL BANCO 0 
	MOVLW B'00101000' 
	MOVWF SSPCON 
	MOVLW .0 
	RETURN


;-------------RUTINAS I2C------------------- 
S_START 

	BCF PIR1,SSPIF ; CON ACK 
	CALL BANK_1 
	BSF SSPCON2,SEN 
	CALL BANK_0 
START_W 
	BTFSS PIR1,SSPIF 
	GOTO START_W 
	RETURN 



S_STOP 

	BCF PIR1,SSPIF 
	CALL BANK_1 
	BSF SSPCON2,PEN 
	CALL BANK_0 
STOP_W 
	BTFSS PIR1,SSPIF 
	GOTO STOP_W 
	RETURN 



S_BYTE 
	BCF PIR1,SSPIF 
	MOVWF SSPBUF 
SEND_B 
	BTFSS PIR1,SSPIF 
	GOTO SEND_B 
	RETURN 


R_BYTE 
	BCF PIR1,SSPIF ;PARA GRABAR 
	CALL BANK_1 
	BSF SSPCON2,RCEN 
	CALL BANK_0 
READ_W 
	BTFSS PIR1,SSPIF 
	GOTO READ_W 
	BCF PIR1,SSPIF 
	CALL BANK_1 
	BCF SSPCON2,ACKDT 
	BSF SSPCON2,ACKEN 
	CALL BANK_0 
ACK_W 
	BTFSS PIR1,SSPIF 
	GOTO ACK_W 
	MOVF SSPBUF,W 
	RETURN 


;---------------------------BANCOS------------------ 
BANK_0 
	BCF STATUS,RP0 
	BCF STATUS,RP1 
	RETURN 

BANK_1 
	BSF STATUS,RP0 
	BCF STATUS,RP1 
	RETURN 

BANK_2 
	BCF STATUS,RP0 
	BSF STATUS,RP1 
	RETURN 

BANK_3 
	BSF STATUS,RP0 
	BSF STATUS,RP1 
	RETURN 



