Problemas E2p Externa - CCS/Proteus

Olá, pessoal.
Estou debugando um código C/CCS no Proteus, utilizando o driver '24128.C' para tratar uma eeprom externa. Após inicialização do driver (init_ext_eeprom()), eu não conseguia gravar '0' no endereço apontado pela constante ext_eeprom_index e só consegui fazer isso após inserir um delay de, no mínimo, 4ms antes de gravar. Segue um trecho do código (o printf é só para verificar o resultado desse caso):
Acontece que esse delay acaba me complicando. Estabilização das linhas I2C (o driver utiliza #use i2c(...) nativo do compilador)? Mas não seria um delay muito longo pra isso? Andei interpretando o driver e não vi ali nada que justifique tanto delay. Ou esse problema ocorreria pelo simulador? Afinal: Pra que esse delay??? Em tempo: ainda não montei o hardware, então.... Bem, se alguém puder ajudar, agradeço.
Abços.
Estou debugando um código C/CCS no Proteus, utilizando o driver '24128.C' para tratar uma eeprom externa. Após inicialização do driver (init_ext_eeprom()), eu não conseguia gravar '0' no endereço apontado pela constante ext_eeprom_index e só consegui fazer isso após inserir um delay de, no mínimo, 4ms antes de gravar. Segue um trecho do código (o printf é só para verificar o resultado desse caso):
- Código: Selecionar todos
init_ext_eeprom();
delay_ms(4); // <- Aqui é a dúvida...
write_ext_eeprom(ext_eeprom_index, 0);// inicializa indice na ext eeprom
printf("%X\r\n",read_ext_eeprom(ext_eeprom_index)); //DEBUGGING...
Acontece que esse delay acaba me complicando. Estabilização das linhas I2C (o driver utiliza #use i2c(...) nativo do compilador)? Mas não seria um delay muito longo pra isso? Andei interpretando o driver e não vi ali nada que justifique tanto delay. Ou esse problema ocorreria pelo simulador? Afinal: Pra que esse delay??? Em tempo: ainda não montei o hardware, então.... Bem, se alguém puder ajudar, agradeço.
Abços.