TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: AABHGA en 13 de Septiembre de 2006, 21:47:13

Título: Grabar y Leer la EEPROM
Publicado por: AABHGA 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)?
Título: Re: Grabar y Leer la EEPROM
Publicado por: LordLafebre 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.
Título: Re: Grabar y Leer la EEPROM
Publicado por: AABHGA 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.,
Título: Re: Grabar y Leer la EEPROM
Publicado por: LordLafebre en 13 de Septiembre de 2006, 22:39:07
Hola:

Pon el codigo que estas utilizando para mirarlo.
Título: Re: Grabar y Leer la EEPROM
Publicado por: AABHGA 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.
Título: Re: Grabar y Leer la EEPROM
Publicado por: LordLafebre 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.
Título: Re: Grabar y Leer la EEPROM
Publicado por: AABHGA 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.
Título: Re: Grabar y Leer la EEPROM
Publicado por: LordLafebre 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.
Título: Re: Grabar y Leer la EEPROM
Publicado por: AABHGA 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.
Título: Re: Grabar y Leer la EEPROM
Publicado por: Mario 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
Título: Re: Grabar y Leer la EEPROM
Publicado por: AABHGA 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).