Autor Tema: Probemas con la EEPROM  (Leído 3055 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado letxu1

  • PIC10
  • *
  • Mensajes: 7
Probemas con la EEPROM
« en: 10 de Marzo de 2006, 06:53:00 »
Hola a todos!!
vuelvo otra vez a la carga con los dsPIC, intento usar la memoria de la EEPROM de un 30f6014, para ello me he descargado las librerias q necesitaba y he mirao un ejeplo, el problema es q el ejemplo es con arrays y yo simplemente kiero guaradar un dato entero en la memoria, para ello he usao esta sentencia

temp = WriteEE(gas,0xF000,&posicionGas, ROW);

se supone que el primer dato es el valor del gas, el segundo los 8 bit de mayor peso, la tercera los  16 de menor peso y la cuarta el tamaño. Me compila y me ejecuta, es decir, no me da ningun fallo, pero luego no se me escribe nada en la memoria, estoy desesperada, si alguien me puediese echar una mano..!!!Gracias.

Desconectado Sispic

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
RE: Probemas con la EEPROM
« Respuesta #1 en: 10 de Marzo de 2006, 13:05:00 »

Puedes pegar ó  donde conseguir la función WriteEE(  ); ??

Desconectado letxu1

  • PIC10
  • *
  • Mensajes: 7
RE: Probemas con la EEPROM
« Respuesta #2 en: 10 de Marzo de 2006, 13:12:00 »
Los he encontrado:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2509

aki hay un .zip que dice:

 CE017 Reading, Erasing and Writing to dsPIC30F Data EEPROM

De ahi he sacado el ejemplo, pero al intentar aplicarlo a lo que kiero hacer no me funciona nada, he mirado pricipalmente los archivos DataEEPROM.h y DataEEPROM para ver más o menos como funcionaban, ya que explican un pokillo que hace, pero nada, no se como hacerlo funcionar. Si supieses de otro ejemplo que sea mas explicativo o asi, me vale igual. Muchas Gracias

Desconectado Sispic

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
RE: Probemas con la EEPROM
« Respuesta #3 en: 10 de Marzo de 2006, 14:14:00 »
Ok

Por lo que me parece funcina así :

extern int WriteEE(int* DataIn, int Page, int Offset, int Size);

DataIn -> el puntero con tus valores
Page  -> la direccion MSB de la Eeprom
Offset -> la direccion LSB de la Eeprom
Size ->  tamaño de posiciones a gravar de DataIn
 
WriteEE(&Gas,0x007F,0xF000 10 );

Esto guardará 10 words de gas , a partir de la posición 0 de la Eeprom de un 30F6014
.

Fijate en el data que la dirección de la Eeprom puede variar en cada modelo .

Ejemplo el 30F4011 está en 0x007F , 0xFC00


Desconectado letxu1

  • PIC10
  • *
  • Mensajes: 7
RE: Probemas con la EEPROM
« Respuesta #4 en: 10 de Marzo de 2006, 16:39:00 »
Sigue sin funcionar, a ver te digo, en el dataIn le meto la varible gas, el problema es q es un unico numero, no tengo una lista de numeros. Lo que estoy intentando hacer, es cada x tiempo voy leyendo datos de unos sensores y con las mediciones q me dan, las kiero ir guardando en la eeprom para tenerlas almacenadas. Y ahi es donde viene el problema, que claro yo leo de un dato en un dato. y es no se si solo funcionara la funcion para un array, cuando compilo sale el siguiente fallo:

warning: passing arg 1 of `WriteEE" makes pointer from integer without a cast

las direcciones de la eeprom supongo q son esas, lo digo xq estoy usando el MPLAB y para verla en la parte de la EEPROM memory salen esas las primeras direcciones, no tengo ni idea de xq puede pasar. Y no he acabao de entender el campo size, que sería el numero de datos que kiero tener como total??? si se te ocurre algo mas...
yo llevo mirando pa ello 3 dias y ya estoy bloqueada.Gracias

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Probemas con la EEPROM
« Respuesta #5 en: 11 de Marzo de 2006, 00:00:00 »
¿Seguro que la variable Gas es un entero y la has pasado como argumento con el signo "&" delante?, si es así no sé porqué te da error al compilar.

Por otra parte, el parámetro "Size" se refiere al nº de bytes que ocupe tu valor entero, que si no recuerdo mal, en C30 se trata de 2. De todas formas, si pones 10 como en el ejemplo de Sispic, también funcionará porque rellenará lo que sobre con más información y el dato válido quedará al principio.

Desconectado Sispic

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
RE: Probemas con la EEPROM
« Respuesta #6 en: 11 de Marzo de 2006, 03:03:00 »
Pos Ni idea .

Aunque esto si funciona .
http://miarroba.com/foros/ver.php?foroid=781922&temaid=3765962

suerte

Desconectado letxu1

  • PIC10
  • *
  • Mensajes: 7
RE: Probemas con la EEPROM
« Respuesta #7 en: 11 de Marzo de 2006, 06:39:00 »
Jo nada tambien he probado con el jemplo que me habeis dicho q estaba en ensamblador y nada de nada, parecera  una pregunta estudpida, pero al simularlo con el MPLAB, debería ver el dato en la ventana EEPROM memory??es que ya empiezo a dudar si esq  los dats se graban en otro sitio y por eso pienso q no funciona, escribi un mail a microchip y me han dicho q deberia funcionar con la funcion de ejemplo que tienen puesta como ejemplo, entonces a lo mejor es q si esta funcionando y no me doy cuenta. Aun no lo he grabao, simpplemente estoy simulandolo, lo estoy haciendo mal??GRACIASSonrisa

Desconectado Sispic

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
RE: Probemas con la EEPROM
« Respuesta #8 en: 11 de Marzo de 2006, 14:05:00 »
El ejemplo esta en C .

void EepromWrite(unsigned int Addr , unsigned int Dato)

ahora vas y lo simulas Muchas risas

Ni idea de como va eso del simulador , me gusta tocar en directo .

Desconectado letxu1

  • PIC10
  • *
  • Mensajes: 7
RE: Probemas con la EEPROM
« Respuesta #9 en: 11 de Marzo de 2006, 14:42:00 »
jeje, encontes es seguro q funciona???porque si es asi, no lo simulo ni nada y lo grabo directamente. Simularlo me refiero a con el MPLAB hay una opcion que se llama MPLAB SIM y te deja simular el programa, si le das a view se te despliega una lista con todas las ventanitas que puede abir y asi puedes ir viendo en cada momento que valores toman las variable, o el estado de la memoria, hay una opcion que sesta en debbuger-->animate  y va ejecutando todo el programa paso a paso, estooy usando eso, no si si lo usareis, pero es util, por lo menos a mi me lo parece, xq es más rapido que grabar y probar, asi te puedes dar cuenta de fallos que tengas  o exactamete de donde falla el programa, a mi por lo menos me parece util.


 

anything