Estou tentando fazer um programa que le dados de um sensor i2c mas assim que eu envio o dado o i2c nunca fica livre.
Estou fazendo assim:
BSF SSPCON2,SEN ;Mando o Bit de Start
BANK1
BTFSC SSPSTAT,R_W ;Aqui so espero a i2c estar livre
GOTO $-1
MOVF SSPCON2,W
ANDLW B'00011111' ;Aqui mascaro ele de volta
BTFSS STATUS,Z
GOTO $-3
BANK0
MOVLW b'00000101' ;Esse e o dado que o sensor esta esperando
MOVWF SSPBUF
BANK1
BTFSC SSPSTAT,R_W ;Aqui espero a i2c livre outra vez mas isso nunca acontece
GOTO $-1
MOVF SSPCON2,W
ANDLW B'00011111'
BTFSS STATUS,Z
GOTO $-3
BANK0
BANK1 ;Aqui seria para ler mas o programa trava em cima
BSF SSPCON2,RCEN
BANK0
BANK1
BTFSC SSPSTAT,R_W
GOTO $-1
MOVF SSPCON2,W
ANDLW B'00011111'
BTFSS STATUS,Z
GOTO $-3
BANK0
MOVF SSPBUF,W
Alguem sabe me dizer o que esta acontecendo, enquanto eu ainda tenho cabelo!