hola
Implemente un nuevo codigo en el cual un master escribe sobre
un esclavo de direcion especifican pero en el bus hay otro esclavo
con direcion distinta.
en la interrupcion si state == 0x80 le puse
//i2c_write(Dato1);
output_high(PIN_B3);
delay_ms(150);
output_low(PIN_B3);
delay_ms(150);
output_high(PIN_B3);
delay_ms(150);
output_low(PIN_B3);
delay_ms(150);
output_high(PIN_B3);
delay_ms(150);
output_low(PIN_B3);
printf("\n\r Llego dato.");
break;
¿por que el dato le llega a los dos esclavo si solo deberia de llegarle a uno?
al que coincide su direcion, mediante proteus vi que le llega primero a uno y despues al otro
tambine probe a cambiar la direcion para versi cogia primero al otro y despues al primero
pero no se los manda de forma seguida pero sin identificar direcion.
en la interrupcion del esclavo puse una condicion que verifique el registro SSPADD, creo que ese es donde guarda las direciones... o eso creo yo
la condicion es :
//en cabecera
//#define S1 0xb0
//#define S2 0xB2
if( SSPADD==S1){
printf("\n\r state==0 soy s1: %X" SSPADD);
}
en el otro esclavo igual pero para S2
¿que esta ocurriendo?...