HI ALL, IV BEEN TRYING TO USE I2C ON A PIC 16F876A AND I CARNT GET IT TO WORK.
IV NARROWED THE PROBLEM DOWN USING A PICKIT2 BUT CARNT WORK IT OUT.
THE PROBLEM IS THAT AFTER I RUN THIS PIECE OF CODE AND IT GETS TO"BSF SSPCON2,SEN" THE SSPCON2 STILL READS 0x00 ie THE I2C START CONDITION ISNT BEING CARRIED OUT FOR SOME REASON CAN ANY1 HELP ME PLEASE........
HERES MY CODE
THANKS FOR ANY HELP
JASON
IV NARROWED THE PROBLEM DOWN USING A PICKIT2 BUT CARNT WORK IT OUT.
THE PROBLEM IS THAT AFTER I RUN THIS PIECE OF CODE AND IT GETS TO"BSF SSPCON2,SEN" THE SSPCON2 STILL READS 0x00 ie THE I2C START CONDITION ISNT BEING CARRIED OUT FOR SOME REASON CAN ANY1 HELP ME PLEASE........
HERES MY CODE
Code:
InitI2C: ; The subroutine of I2C Initialization
BANKSEL TRISC
movlw B'00011000' ; Initial PortC,bit 3 & 4 as Input
movwf TRISC ; RC3 = SCL , RC4 = SDA
BANKSEL PORTC
movlw 0xff
movwf PORTC
movlw .100 ; This gives 100KHz I2C clock @ 4MHz
banksel SSPADD
movwf SSPADD
movlw b'10000000' ; Disable slew rate control.
banksel SSPSTAT
movwf SSPSTAT
movlw b'00000000' ;
movwf SSPCON2 ; Setup MSSP for continuous reception.
movlw b'00101000' ; Enable MSSP and setup for I2C master
banksel SSPCON ; mode.
movwf SSPCON
banksel PIR1
movlw 0x00
movwf PIR1
return
I2CWAIT
banksel PIR1
FLoop btfss PIR1,SSPIF
goto FLoop
bcf PIR1,SSPIF
return
I2CSTART
BANKSEL SSPCON2
BSF SSPCON2,SEN
CALL I2CWAIT
BANKSEL 0
RETURN
THANKS FOR ANY HELP
JASON