Autor Tema: Esta memoria graba lo que quiere... o_O  (Leído 1840 veces)

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

Desconectado WalkerSister

  • PIC10
  • *
  • Mensajes: 3
Esta memoria graba lo que quiere... o_O
« en: 30 de Marzo de 2005, 15:12:00 »
¡Saludos!
Unos compañeros de facultad y yo estamos haciendo un proyecto en el que utilizamos un PIC16F873, y tenemos problemas con la memoria EEPROM de datos.
La cosa es que necesitamos que la primera posición de la memoria contenga un 0 (por defecto contiene FF), y así se lo indicamos al programa que utilizamos para grabar el pic. Le damos a grabar, y el programa nos indica que tanto la memoria de programa como la de datos han sido grabadas correctamente. Hasta ahí parece que todo va bien, pero si al finalizar la grabación leemos el contenido del pic, el programa nos muestra que la posición en la que grabamos el 0 no contiene un 0, sino cualquier otra cosa...
¿Estamos haciendo algo mal, o es que el pic está estropeado? Aparte de comprar un pic nuevo, ¿hay alguna solución?
Gracias por adelantado. Sonrisa

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
RE: Esta memoria graba lo que quiere... o_O
« Respuesta #1 en: 30 de Marzo de 2005, 16:35:00 »
Probad a grabar la eeprom por software... es decir, un programa que escriba en la eeprom... grabas ese programa en el PIC y deberia de funcionar. Pues es muy raro que el pic falle sin una negligencia nuestra...Sonrisa Gigante

salu2

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: Esta memoria graba lo que quiere... o_O
« Respuesta #2 en: 30 de Marzo de 2005, 18:03:00 »
Si estas programando en ASM supongo q kieres q el "0" ya este alli cuando kieras guardar el programa, usa estas dos lineas de codigo antes del programa:

Codigo:

           org      2100h
           de       0



Si no es asi, entonces verifica la rutina de grabacion, principalmente el orden en el q esta y asegurate de cargar el registro EEDATA con el valor q deseas almacenar en la direccion apuntada en EEADDR (q en este caso seria 0 o la primera posicion de la EEPROM)

Desconectado WalkerSister

  • PIC10
  • *
  • Mensajes: 3
RE: Esta memoria graba lo que quiere... o_O
« Respuesta #3 en: 01 de Abril de 2005, 05:06:00 »
Escrito originalmente por fenix_jn
Codigo:

           org      2100h
           de       0


¿Qué hacen exactamente estas dos líneas de código?

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: Esta memoria graba lo que quiere... o_O
« Respuesta #4 en: 01 de Abril de 2005, 10:29:00 »
Esas dos lineas permiten la escritura directa de la EEPROM del PIC desde el momento en q se programa, es como poner la eeprom en "default", es decir, ya existiran datos en ella:

org 2100 apunta a la direccion dond comienza la primera posicion de EEPROM

de 0 es una directiva del compilador dond "de" significa datos de eeprom, el valor q le sigue es el valor q sera escrito en la posicion direccionada

Desconectado WalkerSister

  • PIC10
  • *
  • Mensajes: 3
RE: Esta memoria graba lo que quiere... o_O
« Respuesta #5 en: 07 de Mayo de 2005, 12:07:00 »
Pero entonces, ¿graba un 0 cada vez que se ejecuta el programa, es decir, cada vez que pongamos el robot en marcha?

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: Esta memoria graba lo que quiere... o_O
« Respuesta #6 en: 07 de Mayo de 2005, 22:33:00 »
no solo una vez, veras, la directiva "de" y "org" son instrucciones especiales del compilador para el programador (o kemador) no para el programa en el pic, es decir esas 2 lineas de instruccion se ejecutaran solo 1 vez: cuando programes el pic.

Aclaro, no es que el programador sea inteligente pero si el "programa" (de windows o msdos o linux o cualkiera q uses para kemar el pic) q lo maneja (winpic, icprog, picstart...), cuando encuentra estas instrucciones especiales genera los procesos adcuados para tal fin. La escritura en la eeprom via programa de PIC se hace mediante los ya conocidos EECON1, EECON2, EEADDR y EEDATA.


 

anything