//**************************************************
#int_timer0
void tmr0_isr(){
...
if(bTimeout){
if(iTimeOut++>10){
iTimeOut=0;
bTimeout=0;
}
}
...
...
}
//**************************************************
void i2c_start_modificado(){
bTimeout=1;
i2c_start();
iTimeOut=0;
bTimeout=0;
}
//*****************************************************
#zero_ram
void main(){
...
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256|RTCC_8_BIT);
// configura el Timer0 base de tiempo interno, pre-escaler=1:256
set_timer0(138); // retardo de ~ 30ms
enable_interrupts(INT_TIMER0);
...
enable_interrupts(global);
...
i2c_start_modificado()
...
}