Hola, me pregunto si la directiva del CCS para usar el puerto I2C en un pic16f876 configura el puerto C como entrada por defecto, pues revisando un viejo programa que hice, el RC2 lo tenia configurado como salida, sin embargo lo estoy usando como entrada, un pulsador exactamente, y el programa funcionaba perfectamente.
La cabecera del main es esta:
void main(){
setup_ccp1(CCP_OFF);
restart_wdt();
Set_TRIS_A(0b11011111);
Set_TRIS_C(0b11111011);
TRISB3=0;//PB3 como salida
RELE=RELE_ON;
setup_timer_1(T1_INTERNAL | T1_DIV_BY_1);
Setup_ADC_Ports(RA0_RA1_ANALOG_RA3_REF);
Setup_ADC(ADC_CLOCK_DIV_32);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
Set_ADC_Channel(0);
delay_ms(1);
set_timer1(Periodo);
init_ext_eeprom();
LeeValoresMaximos();
lcd_init();
la directiva del I2C es esta:
# use i2c(MASTER, SDA=PIN_C4, SCL=PIN_C3,SLOW,FORCE_SW,RESTART_WDT)
Y lo uso solamente para una EEPROM externa.
Saludos y gracias.