Autor Tema: Grabar y Leer la EEPROM  (Leído 2901 veces)

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

AABHGA

  • Visitante
Grabar y Leer la EEPROM
« en: 13 de Septiembre de 2006, 21:47:13 »
Hola, otra vez yo xD  :D, tengo un pequeño problema, y es que necesito almacenar una variable en la EEPROM de mi 16F877 y luego desde el programa, poderla leer y/o modificar, he aquí el código.

Código: [Seleccionar]
PASSREAD VAR WORD
PASSIN VAR WORD
PASSOUT VAR WORD

Con este grabo dicho valor a la hora de programar, es un valor en decimal
Código: [Seleccionar]
EEPROM 20, [1111]

Con este lo leo y lo muestro en el LCD, solo que me muesta un 87
Código: [Seleccionar]
READ 20, PASSREAD
LCDOUT $FE, 1, #PASSREAD

Cuando he ingresado el código con el teclado y le digo que lo muestre, me muesta un 1111, pero cuando lo quiero comparar con lo que esta en la memoria no coincide y no trabaja, alguien sabe ¿cómo debo grabar el famoso 1111 en la memoria o como debo leerlo para que sea un 1111 no un 87 (ese 87 vienen siendo los últimos 8 bits de 1111 en binario)?

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Grabar y Leer la EEPROM
« Respuesta #1 en: 13 de Septiembre de 2006, 21:59:20 »
Hola:

para almacenar valores en la eeprom esta bien la funcion EEPROM puedes leer las posicioes de la Eeprom utilizando:

 
Código: FreeBasic
  1. READ Address,Var

asi comparas ese valor con el que desees.

Y si quieres comparar valores numericos de diferentes tipos utiliza los operadores correspondientes, si quieres binario, utiliza %, para hexadecimal $ y el decimal sin operador.
« Última modificación: 13 de Septiembre de 2006, 22:01:20 por LordLafebre »

AABHGA

  • Visitante
Re: Grabar y Leer la EEPROM
« Respuesta #2 en: 13 de Septiembre de 2006, 22:12:33 »
Si, el problema es cuando leo el valor de la EEPROM, cuando asigno lo que hay en la posición 20 (que es el 1111 que grabé) a la variable PASSREAD, esta toma el valor de 87 y no del 1111, ahi es donde radica mi problema.,

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Grabar y Leer la EEPROM
« Respuesta #3 en: 13 de Septiembre de 2006, 22:39:07 »
Hola:

Pon el codigo que estas utilizando para mirarlo.

AABHGA

  • Visitante
Re: Grabar y Leer la EEPROM
« Respuesta #4 en: 13 de Septiembre de 2006, 23:20:47 »
Aquí está:

Código: [Seleccionar]
PASSREAD VAR WORD
PASSIN VAR WORD
EEPROM 20, [1111]
READ 20, PASSREAD
LCDOUT $FE, 1, #PASSREAD

y en el LCD veo un 87, lo que me hace pensar que almacena solo 8 bits en la eeprom, porque:

10001010111 ===> 1111
00001010111 ===> 0087

Ademas cuando ingreso el numero para comparar con el teclado y lo grabo en la variable PASSIN y luego lo muestro en el LCD ahi si me aparece el 1111.
« Última modificación: 13 de Septiembre de 2006, 23:22:39 por AABHGA »

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Grabar y Leer la EEPROM
« Respuesta #5 en: 13 de Septiembre de 2006, 23:38:00 »
Hola:

Pues si, la eeprom del micro es solo de 8 bits, no me di cuenta que estabas guardando un decimal 1111, pense que estabas grabando un binario %1111, disculpas no me di cuenta, no puedes sobrepasar los 8 bits, en este caso de 0 a 255, nada mas, en una sola posicion de memoria por supuesto.
« Última modificación: 13 de Septiembre de 2006, 23:40:23 por LordLafebre »

AABHGA

  • Visitante
Re: Grabar y Leer la EEPROM
« Respuesta #6 en: 13 de Septiembre de 2006, 23:50:58 »
Mier...., entonces tengo que utilizar 2 variables, voy a ver como diablos me las ingenio. gracias nuevamente Lord y disculpa tanta joda.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Grabar y Leer la EEPROM
« Respuesta #7 en: 14 de Septiembre de 2006, 01:01:49 »
Hola:

Lo que puedes hacer es ver como hacer para partir ese valor en dos bytes y guardarlo en dos posiciones de memoria, y asi mismo leer las posiciones de memoria y luego unir el dato de nuevo.

AABHGA

  • Visitante
Re: Grabar y Leer la EEPROM
« Respuesta #8 en: 14 de Septiembre de 2006, 01:34:51 »
Si, ya pude, utilizé 2 EEPROM para grabarlas al programar y 2 variables mas cuando el programa en sus funciones la graba, no fue tan complicado, 2 IF haciendo que cada uno grabara un valor de 2 dígitos decimales en cada una de las variables, cuando lo termine de depurar pego el código por si alguien lo puede necesitar.

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Grabar y Leer la EEPROM
« Respuesta #9 en: 14 de Septiembre de 2006, 02:08:57 »
Hola.

AABHGA, aunque ya solucionaste tu problema, quizá puedas mirar este código, puede que te ayude.
http://www.microengineeringlabs.com/resources/samples/pbp/eeword.bas
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

AABHGA

  • Visitante
Re: Grabar y Leer la EEPROM
« Respuesta #10 en: 14 de Septiembre de 2006, 10:33:30 »
Gracias por el código mario, el proceso es muy similar a como yo lo hize, con la diferencia que yo almaceno y leo todo de un solo paso (así lo requiero en el programa).


 

anything