Here is my new code and a shot of my oscilloscope to show the output. I can see that I'm not getting an acknowledge, but I do not know why.
Code:
'****************************************************************
'* Name : i2c comms test with led driver *
'* Author : Cody Finden *
'* Version : 1.0 *
'* Notes : SOFTWARE FOR A 16F887 TO WRITE TO A LED DRIVER *
'* : OVER THE I2C PROTOCOL *
'****************************************************************
#config
__CONFIG _CONFIG1, _HS_OSC & _WDT_ON & _PWRTE_ON & _MCLRE_OFF & _CPD_OFF & _BOR_ON & _IESO_ON & _FCMEN_ON & _LVP_OFF
__CONFIG _CONFIG2, _BOR40V & _WRT_OFF
#endconfig
DEFINE OSC 20
ANSEL = %00000000
ANSELH = %00000000
TRISA = %00000000
TRISB = %00000000
TRISC = %00000000
TRISD = %00000000
SDA VAR PORTD.3
SCL VAR PORTD.2
led var portc.5
addr var byte
INIT:
PAUSE 400 'let hardware settle
'PCA9532 i2c address(7 bits + 1 bit for R/W)
'Slave address is 1100(A2)(A1)(A0) + (R/W)
'In my setup A2 is pulled low, A1 pulled high, A0 pulled low
addr = %11000100
MAIN:
' I2CWRITE SDA,SCL,ADDR,[$12,$97,$80,$00,$40,$55,$FA,$00,$00]
I2CWRITE SDA,SCL,ADDR,$06,[$00] 'turn off led 0-3
led = 1 'blink led for feedback
PAUSE 250
I2CWRITE SDA,SCL,ADDR,$06,[$55] 'turn on led 0-3
led = 0
pause 250
goto main
Bookmarks