TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: gapsna en 31 de Julio de 2010, 22:42:07

Título: No entiendo como usar la EEPROM interna.
Publicado por: gapsna en 31 de Julio de 2010, 22:42:07
Hola Usuarios, les comento mi situacion.'

He trabajado un poco en robotica, y tengo un par de robots, tocos controlados mediante pic, uso lenguaje C y compilo con el PIC-C. Hasta ahora, nunca he nesecitado guardar datos en la memoria no volatil del pic, sin embargo, para una competencia en la universidad, requiero guardar un solo numero del 1 al 5. Y no entiendo como se hace eso en lenguaje C, solo encuentro para Assembler. Cualquier tutorial para C o ayuda, sera bienvenida. De antemano, muchas gracias.

Edito: tb nesecito saber como hago pa leer una direccion especifica de la eeprom, el lugar donde guardaria ese numero.
Título: Re: No entiendo como usar la EEPROM interna.
Publicado por: AKENAFAB en 31 de Julio de 2010, 23:06:37
En la ayuda del CCS viene

WRITE_PROGRAM_EEPROM

Ya solo checa el overview , viene desglazadas las caracterisiticas y funciones.

Saludos!
Título: Re: No entiendo como usar la EEPROM interna.
Publicado por: gapsna en 31 de Julio de 2010, 23:16:31
En la ayuda del CCS viene

WRITE_PROGRAM_EEPROM

Ya solo checa el overview , viene desglazadas las caracterisiticas y funciones.

Saludos!


muchas gracias por tu respuesta ^^
Título: Re: No entiendo como usar la EEPROM interna.
Publicado por: gera en 01 de Agosto de 2010, 02:45:47
Estos ejemplos salen en el manual del CCS:

READ_EEPROM(address)
Esta función lee un byte de la dirección (address) de EEPROM especificada. La dirección puede ser 0-63.
Ejemplo:
#define LAST_VOLUME 10
volume = read_EEPROM (LAST_VOLUME );

WRITE_EEPROM(address, value)
Esta función escribe un byte de datos en la dirección de memoria EEPROM especificada. address puede valer 0-63; value es el byte de datos a escribir; Esta función puede tardar varios milisegundos para ejecutarse.
Ejemplo:
#define LAST_VOLUME 10
volume++;
write_eeprom(LAST_VOLUME,volume);

saludos!!