Gustavo03,
Bueno, mira con respecto al I2C, te explico CCS genera directamente el codigo necesario para que cuando en tu programa escribas i2c_start(); se genere un bit de stop en el bus sin que tengas que preocuparte como se hace, inclusive la inversion del sentido de SDA lo hace el mismo driver, asi que es mas facil de lo que parece.
No todos los compiladores incluyen estas funciones si bien incluyen librerias no estan incluidas por defecto, asi que ojo con este punto, si usas CCS no hay porque precuparse de nada, esta todo resuelto.
Como haces para usarlo en un PIC que no tenga modulo HW, pues sencillamente le decis en que pines queres usar como I2C SDA y SDL, asi por ejemplo en los pines A0 y A1 del 16F84
#use I2C(master, sda=PIN_A0,scl=PIN_A1)
ó en el pin que te plazca,
Ahora se complica si queres comunicar 2 pics via I2C pues CCS no puede usar un PIC que no posea modulo de HW I2C, como es el caso del 16F84, no puedes porque como esclavo solo los que tienen modulo de HW CCS maneja, si podes hacerlo con un PIC16F88, o simplemente con cualquiera que posea esta prestacion.
Y si no tenes PIC con I2C HW, puedes bajar de
www.microchip.com una libreria en ASM que hay para hacer un esclavo I2C, incluirla en el programa de tu esclavo y bueno, funciona yo lo probe con PIC16C54 que es un micro viejo de 12 bits, para hacer una aplicacion que consistia BPK para un LCD que debia poseer protocolo I2C, el programa lo hice completo en ASM porque este micro tiene 512 bytes de memoria, y bueno en C andaba muy justo.
Quizas debas hacerle algunas modificaciones a la libreria de microchip para incluirla en el C de CCS, en lo que refiere al uso de la memoria, lo demas anda casi seguro de una.
UNa vez que ese funcionado tenes que implementar en tu programa un sistema maestro esclavo pues solo puede en el I2C inciar comunicacion el MASTER, asi que deberas hacer poolling a cada esclavo si hay mas de uno, en periodos de acuerdo a tu aplicacion.
Si la comunicacion es entre 2 pics insisto en que mires el ejemplo del manual de CCS de 1 solo hilo (ver pagina 218 el manual de CCS), ademas podes bajar el manual de CCS y sus parches de la web de
www.ccsinfo.com, y seguro vas a descubrir lo maravilloso que es este compilador.
Disculpa la tardanza en contestar,
saludos
ARIEL