Hola señores. Pues resulta que he probado todos los códigos que se han propuesto, pero al simularlos en el proteus, además de que bota n mil errores no trabaja igual que en la proto, pues en el proteus aparentemente lee y escribe datos pero erroneos, en cambio en el proto ni siquiera salta de la rutina de escribir y se queda ahí paralizado !!!!!!
.
Estoy intentando escribir un simple dato y luego leerlo y compararlo para ver si fué el mismo que escribí, pero nada de esto resulta, ya que lee datos con valores aleatorios... ¿?¿?¿?¿? Quisiera saber en dónde está mi error.... Adjunto las lineas en picc. Gracias por la ayuda!
***************************************** PRUEBILLA PARA LA 24LC16B CON PIC18F4550 **********************************************
#include <18f4550.h>
#fuses XT,NOPUT,NOPROTECT,NOBROWNOUT,NOLVP,NOWDT //comandos para el programador
#use delay(clock=4000000)
#include <lcd.c>
#define EEPROM_SDA PIN_C4
#define EEPROM_SCL PIN_C5
#include <2416.c> //libreria de eeprom externa 24LC16
int i=0;
void main(){
BYTE dato1,dato2;
EEPROM_ADDRESS direccion;
init_ext_eeprom();
lcd_init();
while(true){
output_high(pin_c0);
output_low(pin_c1);
dato1=64;
direccion=i;
i=i++;
if(i==100){
i=0;
}
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("Test");
lcd_putc("\n");
lcd_putc("EEPROM");
delay_ms(250);
write_ext_eeprom(direccion,dato1);
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("EEPROM");
lcd_putc("\n");
lcd_putc("ESCRITA");
dato2=read_ext_eeprom(direccion);
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("EEPROM");
lcd_putc("\n");
lcd_putc("LEIDA");
if(dato2==dato1){
output_high(pin_c0);
output_high(pin_c1);
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("EEPROM");
lcd_putc("\n");
lcd_putc("WORKS!");
}
else{
output_low(pin_c0);
output_high(pin_c1);
lcd_putc("\f");
lcd_gotoxy(1,1);
printf(lcd_putc,"DAMN %u",dato1);
lcd_putc("\n");
printf(lcd_putc,"IT! %u",dato2);
}
delay_ms(250);
output_low(pin_c0);
output_low(pin_c1);
delay_ms(250);
}
}
********************************************************************************************************************