Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

22/10/2010 #1

Avatar de jgarcam

Lectura eeprom con CCS
Hola colegas pues acudo a ustedes una vez más con una duda, hace un tiempo comence a programar PIC's en C con mikroC, pero decidí mudarme a CCS sin embargo me he topado con un problemilla que es la lectura/escritura de eeprom interna, y es que un amigo me comentó que en CCS no había una funciones definidas como en mikroC para la lectura/escritura de la eeprom interna , y bueno para no darle tantas vueltas me gustaría saber como puedo leer/escribir la eeprom interna de un 16F628A en CCS.

Espero puedan ayudarme, de antemano muchas gracias
22/10/2010 #2

Avatar de george.manson.69

Respuesta: Lectura eeprom con CCS
jgarcam dijo: Ver Mensaje
Hola colegas pues acudo a ustedes una vez más con una duda, hace un tiempo comence a programar PIC's en C con mikroC, pero decidí mudarme a CCS sin embargo me he topado con un problemilla que es la lectura/escritura de eeprom interna, y es que un amigo me comentó que en CCS no había una funciones definidas como en mikroC para la lectura/escritura de la eeprom interna , y bueno para no darle tantas vueltas me gustaría saber como puedo leer/escribir la eeprom interna de un 16F628A en CCS.

Espero puedan ayudarme, de antemano muchas gracias
solo es usar la funcion write_eeprom(adress,data);

ejemplo:

Código:
        write_eeprom(7,'1');
        write_eeprom(8,'2');
        write_eeprom(9,'3');
        write_eeprom(10,'4');
        write_eeprom(11,'5');
        write_eeprom(12,'6');
para leer pues
Código:
valor=read_eeprom(adress);
22/10/2010 #3

Avatar de Vegetal Digital

Respuesta: Lectura eeprom con CCS
ok me ganó george.manson.69 pero estaba por escribir lo mismo. Aporto que no lo pruebes en el isis porque el simulador no escribe en la eeprom, esa parte no la simula (al menos la version 7.6) y lee cualquier verdura.
Saludos
22/10/2010 #4

Avatar de FBustos

Respuesta: Lectura eeprom con CCS
Hola mi aporte es que proteus 7.7 sp2 si simula eeprom, escribe hasta un archivo con los datos.
23/10/2010 #5

Avatar de jgarcam

Respuesta: Lectura eeprom con CCS
Muchas gracias a todos, ya vi que si existen las funciones de escritura/lectura de eeprom en el CCS y gracias por los comentarios de ISIS, creo ke mi amigo recibira una queja jajaja, bueno pues nuevamente muchas gracias hasta pronto
23/10/2010 #6

Avatar de FBustos

Respuesta: Lectura eeprom con CCS
De nada, que bueno que te haya resultado.
16/02/2011 #7


eeprom pic
dj pipe dijo: Ver Mensaje
De nada, que bueno que te haya resultado.
mira yo e utilizado los comandos write_eeprom() y read_eeprom() y en el simulador proteus simula de maravilla , lo paso al pic y es un desastre alguien q me pueda decir porq en el pic falla y en el simulador esta correcto
16/02/2011 #8

Avatar de jgarcam

upiscoya dijo: Ver Mensaje
mira yo e utilizado los comandos write_eeprom() y read_eeprom() y en el simulador proteus simula de maravilla , lo paso al pic y es un desastre alguien q me pueda decir porq en el pic falla y en el simulador esta correcto
Pues mira, después de aclarado el tema de las funciones, a mi me paso algo similar y me dijeron resulta que para lectura-escritura de la eeprom se requiere un tiempo mínimo que no se cumple si utilizas un cristal muy grande y lo que tienes que hacer es poner un delay.

No me consta, ya que para mí caso me convino más regresar al cristal que tenia que modificar mi programa, y pues ya no lo comprobé, espero que alguien más pueda corroborarlo o corregirlo.

Saludos, y suerte
17/02/2011 #9


jgarcam dijo: Ver Mensaje
Pues mira, después de aclarado el tema de las funciones, a mi me paso algo similar y me dijeron resulta que para lectura-escritura de la eeprom se requiere un tiempo mínimo que no se cumple si utilizas un cristal muy grande y lo que tienes que hacer es poner un delay.

No me consta, ya que para mí caso me convino más regresar al cristal que tenia que modificar mi programa, y pues ya no lo comprobé, espero que alguien más pueda corroborarlo o corregirlo.

Saludos, y suerte
yo estoy utilizando un cristal de 4MHZ en un pic 16f877-20 y si e puesto delays puedes decirme por favor que palabra de configuracion has usado derrepente no estoy grabando bien el pic

que cristal as utilizado tu ? puedes escribir un ejemplo con el delay que mencionas?
27/06/2011 #10

Avatar de COSMICO

Hola amigos.
Necesito de su ayuda. Tengo un contador de 0 a 999, y debo guardar este numero en la eeprom del pic 873
He encontrado varias funciones para hacerlo, pero al leerla, sólo obtengo el primer byte, y la idea es pasar los dos byte de 8 a un entero de 16, para verlo en la lcd.Como le hago para recuperar el numero entero.
le agradesco..
27/06/2011 #11

Avatar de jgarcam

Ya comprobaste que si este escribiendo, antes de leer??
Si pudieras explicar un poco más y/o poner tu codigo seria mas facil.
28/06/2011 #12

Avatar de COSMICO

Ahy te dejo parte de la libreria
y de como estoy intentando leer.


//esto hace parte de la libreria de pcw, que estoy usando

void write_int16_eeprom(INT_EEPROM_ADDRESS address, int16 data){

int8 i;

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


// Purpose: Read a 16 bit number from internal eeprom -----------------------
// Inputs: An eeprom address
// Outputs: The 16 bit number read from internal eeprom

int16 read_int16_eeprom(INT_EEPROM_ADDRESS address){

int8 i;
int16 data;

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

//aqui intento grabar y leer

int16 contador;
int16 valor;

contador=contador+1;
supongamos que contador vale mas de 255.Sea, 256.
write_int16_eeprom(0,contador);
valor=read_int16_eeprom(0);//lo leo en valor, pero valor solo lee un 1 y no 256
pienso que no se usar la libreria; ooo, no es para lo que creo
//si grabo en la eeprom el nº 500 por ejemplo; quiero recuperarlo en otra variable
//has usado esta libreria, ya he intentado varias por internet, pero ninguna me funciona.
Gracias por la ayuda.

Se me olvidaba, el nombre de la libreria" Lib_Int_EEProm.c "
29/06/2011 #13

Avatar de jgarcam

Bueno la verdad nunca he usado esta libreria, pero ya le he echado un vistazo.
Segun entiendo el chiste de todo está en esta parte:
Código:
*(&data + i)
Sincermente no comprendo la funcion exacta o el proceso que hace esa parte del código, lo ideal sería investigar un poco más sobre lo que hace exactamente para determinar si está interfiriendo algo con esa parte, aunque sinceramente no le veo problemas segun lo que lei.
29/06/2011 #14

Avatar de COSMICO

hola jgarcam.
Pues ni por aquí ni por allá; encontre una rutina por ahí en un foro sobre ccs
y esa si funciono a la primera, gracias por todo.
29/06/2011 #15

Avatar de jgarcam

Bueno colega me da mucho gusto que hayas dado con la respuesta , si no es mucha molestia podrías compartir la liga o la solucion que encontraste .

Saludos y suerte.
30/06/2011 #16

Avatar de COSMICO

Esta fue la rutina que encontre. y si que funciona.
se lee y escribe, tal cual lo hice en mi promer post.
Un saludo.

Funciones read_eeprom(address) y write_eeprom(address, byte)
void write_eeprom_16bits(int address, long* val){
int pLow, pHigh;
pLow = val;
pHigh = val>>8;
write_eeprom(address,pHigh);
delay_ms(12);
++address;
write_eeprom(address,plow);
delay_ms(12);
}

long read_eeprom_16bits(int address){
int pLow, pHigh;
long result;
pHigh = read_eeprom(address);
++address;
pLow = read_eeprom(address);
result=(pHigh<<8);
result+=pLow;
return result;
}
30/06/2011 #17

Avatar de jgarcam

Ooo vaya si ya veo , bueno gracias por el aporte, digno de agregar a la biblioteca , hasta pronto
06/07/2014 #18

Avatar de ilcapo

hola cosmico, tendras algun ejemplo sencillo para ver como se usan esas funciones ? mil gracias
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.