Buen día tengan todos ustedes integrantes y visitantes de este gran foro, bueno es la primera vez que expongo un problema y ver si ustedes me pueden ayudar.
Sucede que ando usando el bus i2c :mrgreen: jaja una maravilla de bus, pero tengo un problema, se trata de que estoy usando dos pcf8574 y un pcf8574a(maravilla de integrados :mrgreen:) en el mismo bus y le conecté las resistencias pullup (puse unas de valor de 10k) también la dirección de esclavo para cada uno pero a la hora de correrlo solo me funciona un pcf8574 no se cual sea el problema, les dejo el código fuente y la simulación en proteus, espero y me puedan ayudar, estoy usando el pic 16f877a.
#include <16F877A.h>
#fuses HS,NOWDT,NOPUT,NOLVP,NOBROWNOUT,NOWRT,NOPROTECT
#use delay(clock=20000000)
#use i2c(master,sda=PIN_C4,scl=PIN_C3,FORCE_HW)
void PCF8574_SendData(char writeaddress,char data)
{
i2c_start();
i2c_write(writeaddress);
i2c_write(data);
i2c_stop();
}
unsigned char PCF8574_GetData(char readaddress)
{
char data;
i2c_start();
i2c_write(readaddress);
data=i2c_read(0);
i2c_stop();
return data;
}
void main()
{
char i;
do{
for(i=1;i<=255;i++)
{
PCF8574_SendData(0x70,i);
delay_ms(100);
PCF8574_SendData(0x40,i);
delay_ms(100);
PCF8574_SendData(0x41,i);
delay_ms(100);
}
}while(TRUE);
}