Autor Tema: En una comunicacion I2C como obtengo el resultado en el esclavo?  (Leído 4510 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: En una comunicacion I2C como obtengo el resultado en el esclavo?
« Respuesta #15 en: 08 de Junio de 2015, 23:37:57 »
La verdad que no se. No deberia de pasar por que obviamente tenes una direccion distinta en cada uno.

Lo que podes hacer es mirar el datasheet , por que estoy seguro que un bit se pone a 1 cuando la direccion esta equivocada. Asi preguntas por eso en el I2C.
De todas formas parece ser un problema de configuracion o programacion. Y como siempre CCS con sus funciones ya realizadas que realmente no se que hacen. ahi vas a tener que buscar en el manual de CCS.
Sino configura 1 por 1 los registros y arma tu propia maquina de estados.

Desconectado MINDFIELD

  • PIC16
  • ***
  • Mensajes: 139
Re: En una comunicacion I2C como obtengo el resultado en el esclavo?
« Respuesta #16 en: 09 de Junio de 2015, 01:17:22 »
Hice una reforma usando estas funciones y ya no se confunden los datos en cada pic

Código: [Seleccionar]
void envio_I2C (void) //Funcion de I2C
{
  i2c_start();         //Comienzo de la comunicación I2C ...
  i2c_write(esclavo);     //...con la dirección del PIC esclavo...
  i2c_write(dato);      // Envia dato
  i2c_stop();          //Finalización de la transmisión
  delay_ms(100);
}
 
void envio_I2C_1 (void) //Funcion de I2C
{
  i2c_start();         //Comienzo de la comunicación I2C ...
  i2c_write(esclavo);     //...con la dirección del PIC esclavo...
  i2c_write(dato);      // Envia dato
  i2c_stop();          //Finalización de la transmisión
  //delay_ms(100);
}

solo me resta entender porque anda unos segundos y despues no hace nada! si alguien tiene alguna duda que quiera preguntar o alguna idea para poder resolverlo estaré pendiente de este hilo hasta encontrar la solucion!