hola a todos estoy tratando de guardar cadenas en una eeprom pero solo me deja guardar en las primeras 256 bytes pero cuando intento escribir en otra direccion diferente no me lo permite y no escribe nada si alguien tiene alguna idea de mi problema por favor ayudarme.
dejo codigo:
#include<16F887.h>
//#include<stdlib.h>
#fuses INTRC,MCLR,NOLVP,NOPROTECT,NOWDT
#use delay(clock=20000000)
#use fast_io(C)
#use fast_io(D)
#use i2c(master,SDA=PIN_C4,SCL=PIN_C3)
#include"lcd.c"
#include"24256.c"
#define EEPROM_ADDRESS long int
#define EEPROM_SIZE 32768
char cadena[30]="hola mundo como esta";
char cadena2[11]="aaaaaaaaaa";
char cadena3[11]="bbbbbbbbbb";
char cadena4[11]="cccccccccc";
int f=0x5A;
long int address=0;
void configure()
{
set_tris_C(0);
set_tris_D(0);
output_C(0);
output_D(0);
init_ext_eeprom();
lcd_init();
}
// Esta funcion escribe los bytes de un solo caracter, proporcionando un direccion inicial y los bytes,
//donde la direccion inicial posee el numero de bytes que contiene dicho caracter
void write2ext_eeprom(address, char character)
{
long int i;
long int lim;
lim=20;
for(i>0;i<=lim;i++)
{
if(lim==0){
}
write_ext_eeprom(address,*character);
character++;
address++;
}
}
void main()
{
configure();
lcd_putc("\fEscribiendo...");
//write2ext_eeprom(0,cadena2);
//write2ext_eeprom(41,cadena3);
//write2ext_eeprom(392,cadena4);
write2ext_eeprom(254,cadena);
lcd_putc("\fFin de\nescritura...");
}
PD: el codigo no fue hecho por mi lo copie de otro tema solo lo he modificado