Hola, ya estoy aquí otra vez

!= variable negada
Tengo un memoria eeprom 24c04, la cual tiene patillas para SCL, SDA, VDD, VSS, E0, E1, E2,!WC. Pues conecto scl y sda a mi bus que está con las resistencias de pull up a 5v (el bus funciona porque entre dos pics ya lo he probado y funciona). VDD y VSS alimentados correctamente. !WC lo tengo a 0 porque quiero escribir jeje (lo tengo puenteado con VSS). La dirección genérica de la memoria es 1010xxxx, donde las tres primeras X son las E. Segun el datashett mi E0 es A8 que dice que representa el bit más significativo de la dirección. El último bit es R!W que me imagino que el ccs lo generará dependiendo de si quiero escribir o leer. Entonces, según eso he probado varias maneras de direccionarlo pero no rula, en proteus no lo puedo simular porque el 16f73 no rula el I2c simulado. El código sería algo así ( es que en el manual solo veo como manejar la eeprom interna, si me podeis facilitar algún manual aunque sea en inglés donde salga la instrucciones ext_eeprom etc etc):
#include <16F73.h>
#fuses HS, NOWDT, NOPROTECT, PUT, NOBROWNOUT
#byte puerto_b=06
#use standard_io(c)
#use fast_io(B)
#use delay(clock=16000000)
#use i2c(MASTER, SDA=PIN_C4, SCL=PIN_C3,FAST,FORCE_SW)
#include <2404.c>
set_tris_c( 0xFF ); //port c como salidas porque lo pone en el data sheet
set_tris_b(0b00000000);
main()
{
byte valor;
byte lectura;
eeprom_ADDRESS address;
init_ext_eeprom();
delay_ms(50);
do {
puerto_b=0;
//////////////Escribir en la eeprom: escribimos valor= en el address=
valor=0b00001010; //B
address=0b10101110;//según datasheet cambio el RW para que escriba
write_ext_eeprom(address,valor);
delay_ms(100);
//////////////leer de la eeprom lo que escribimos
address=0b10101111;//según datasheet cambio el RW para que lea
lectura=read_ext_eeprom(address);
puerto_b=lectura;
delay_ms(100);
} while (TRUE);
}
El ejemplo está basado en otro que he visto por ahí, si teneis algo sencillito rogaría una ayudita jeje.
Creo que el fallo estará en la manera de direccionarlo.
Saludos y gracias de antemano.