¡Saludos al foro!
Me he encontrado con el siguiente problema, a ver si alguien me puede orientar.
Uso un bus I2C utilizando la directiva:
#use I2C (master,SDA=PIN_E7,SCL=PIN_E6,SLOW,FORCE_SW)
En la función de lectura de un chip utilizo al principio:
i2c_start(); // Genera el Start
Hay_Error=i2c_write(DIR_CHIP); // Envía el comando WRITE
Funciona perfectamente cuando está todo correcto, pero si fuerzo un cortocircuito entre la línea SCL y GND se queda colgado en la instrucción i2c_write sin volver con el error.
En rutinas del tipo bits-bang, que utilizaba anteriormente, no ocurría ésto y la función volvía con error, como debe de ocurrir.
¿A alguien se le ocurre alguna manera de solventar este problema?