TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: marcriaturo en 14 de Noviembre de 2006, 23:31:34

Título: Ayuda con memoria 24LC256!!!!!!!
Publicado por: marcriaturo en 14 de Noviembre de 2006, 23:31:34
Hola amigos del foro, necesito ayuda acerca de como guardar un dato tipo long (16 bits), en la memoria externa (24LC256), y luego poder recuperarlo. Existe alguna libreria que permita hacer esto??? Especificamente deseo guardar una direccion (16 bits). Muchas gracias :-/
Título: Re: Ayuda con memoria 24LC256!!!!!!!
Publicado por: RedPic en 15 de Noviembre de 2006, 03:12:41
No hace mucho hemos escrito sobre este tema aquí en el foro ... prueba a utilizar el buscador del mismo a ver qué encuentras ... si logro encontrarlo te lo posteo de nuevo.

Título: Re: Ayuda con memoria 24LC256!!!!!!!
Publicado por: marcriaturo en 15 de Noviembre de 2006, 23:39:42
Gracias Red-Pic, te cuento ya encontre la solucion a mi problema!!!!!!!, buscando por ahi encontre funciones para grabar long int a la memoria interna del pic , y lo modifique un poco, por lo menos en proteus funciona bien, falta armar bien el programa y probarlo en el pic y listo. Les adjunto la solucion, por si alguien se interesa:

void write_eeprom_16bits(long int address, long val){
  int pLow, pHigh;
  pLow = val;
  pHigh = val>>8;

  write_ext_eeprom(address,pHigh);
  ++address;
  write_ext_eeprom(address,plow);

}

long read_eeprom_16bits(long int address){

  int pLow, pHigh;
  long result;
  pHigh = read_ext_eeprom(address);
  ++address;
  pLow = read_ext_eeprom(address);
  result=(pHigh<<8);
  result+=pLow;
  return result;
}  8)
Título: Re: Ayuda con memoria 24LC256!!!!!!!
Publicado por: vszener en 17 de Noviembre de 2006, 13:19:04
Es que el buscador hace milagros...  :mrgreen:


Suerte!!! ;)
Título: Re: Ayuda con memoria 24LC256!!!!!!!
Publicado por: samshiel_pic en 18 de Noviembre de 2006, 20:50:17
Desde luego amigo  :mrgreen: . Llevo una temporadita que casi no posteo nada ya que lo que toy haciendo es jartarme de leer todos los post mas antiguos y los nuevos claro y para ello nada mejor que el buscador. :P
Título: Re: Ayuda con memoria 24LC256!!!!!!!
Publicado por: pikman en 03 de Diciembre de 2006, 00:45:20
Bueno, aca te dejo mas ayuda, si usas el compilador de CCS hay una forma explicada en el manual, y ademas una libreria, que tiene la siguiente funcion, solo incluye la libreria external_eeprom.c y llamala, ademas hay muchas cosas mas 32 bits, 1 bit, vale la pena.


// Purpose:    Write a 16 bit number to external eeprom
// Inputs:     1) An eeprom address
//             2) The 16 bit number to write to external eeprom
// Outputs:    None
void write_int16_ext_eeprom(EEPROM_ADDRESS address, int16 data)
{
   int8 i;

   for(i = 0; i < 2; ++i)
   {
     write_ext_eeprom(address + i, *(&data + i));
   }
}


// Purpose:    Read a 16 bit number from external eeprom
// Inputs:     An eeprom address
// Outputs:    The 16 bit number read from external eeprom
int16 read_int16_ext_eeprom(EEPROM_ADDRESS address)
{
   int8  i;
   int16 data;

   for(i = 0; i < 2; ++i)
   {
     *(&data + i) = read_ext_eeprom(address + i);
   }

   return(data);
}