Autor Tema: Borrar EEPROM  (Leído 6154 veces)

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

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Borrar EEPROM
« en: 17 de Junio de 2008, 12:53:37 »
Hola grupo,
como hago para borrar la memoria EEPROM de un pic cada vez que lo vaya a programar (con el PIC start-Plus)
 :(

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Borrar EEPROM
« Respuesta #1 en: 17 de Junio de 2008, 13:05:53 »
Hola.

Pues laPICSTART Plus no da esa opcion en el MPLAB. Yo lo que hago es escribir la directiva #rom asignando los valores respectivos ya sean ceros u otros valores en el programa principal.

Pero  :-) , en la seccion Programmer/Settings/Memory Ranges, esta habilitada por default la casilla Erase All Before Program. Es decir, se borra automaticamente antes de programarse, y ademas esta habilitada la casilla EEPROM.

Saludos
El papel lo aguanta todo

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: Borrar EEPROM
« Respuesta #2 en: 17 de Junio de 2008, 13:46:41 »
MLO, gracias por responderme,

verifiqué en el MPLAB y si aparece la opción pero deshabilitada, para habilitarla debo deshabilitar la opción Erase All Befor Program; pero hay que darle la direción final del programa.

Pero me puedes explicar un poco más sobre la directiva " #rom" ?, no se de que setrata y me interesa saber

gracias

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: Borrar EEPROM
« Respuesta #3 en: 17 de Junio de 2008, 14:18:34 »
Es una directiva en otro lenguaje. Esta directiva no se usa en asm.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Borrar EEPROM
« Respuesta #4 en: 17 de Junio de 2008, 14:20:10 »
Hola.

La directiva de compilacion #rom asigna valores a la ROM en la direccion del dispositivo. Creo que con un pequeno codigo de ejemplo es mejor, para un pic16 seria:
Código: [Seleccionar]
#include<16F873A.h>
#device adc=8
#fuses XT,NOWDT,NOPROTECT,BROWNOUT,PUT,NOLVP
#use delay(clock=4M)
#use rs232(baud=300,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#rom 0x2100={0,0,0,0}

void main (void)
{
 ...
 while(true)
 {
  ....
 }
}

Con esto veremos que la EEPROM se carga con los valores 00h desde la direccion 00h hasta 03h
El papel lo aguanta todo

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Borrar EEPROM
« Respuesta #5 en: 17 de Junio de 2008, 15:02:50 »
Hola.

Ahi va la imagen.



Saludos
El papel lo aguanta todo

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: Borrar EEPROM
« Respuesta #6 en: 17 de Junio de 2008, 15:55:51 »
La verdad es que siempre trabajo en assembler, y veo que el ejemplo se ajusta más a C, pero de todos modos con la opción de Programmer/Settings/Memory Ranges puedo resolver mi situación

gracias

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Borrar EEPROM
« Respuesta #7 en: 18 de Junio de 2008, 09:57:57 »
Hola Diego, lo que puedes hacer es definir el valor a grabar, o colocar en cero de la siguiente manera
;-------------------------------------------------------------------------;
;    seteos de valores iniciales en data EEPROM                           ;
;-------------------------------------------------------------------------;
           ORG H'2100'

          DE  1,5, 5, 5, 3 

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: Borrar EEPROM
« Respuesta #8 en: 18 de Junio de 2008, 15:28:53 »
Norberto, gracais por responderme

me disculpas pero la verdad no comprendo, de todos modos te repito que es lo que necesito:

necesito que cada vez que programe el PIC (16f628) con PICSTAR, los datos existentes en la eeprom se borren.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Borrar EEPROM
« Respuesta #9 en: 18 de Junio de 2008, 21:10:15 »
ok, entonces, en tu programa, en el final, le colocas que en la dirección 2100 (zona de la eeprom), estaran todos en cero

ejemplo

;-------------------------------------------------------------------------;
;    seteos de valores iniciales en data EEPROM                           ;
;-------------------------------------------------------------------------;
           ORG H'2100'

          DE  0,0,0,0,0  ;y todos los ceros que necesites en cada posición de esta tabla
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: Borrar EEPROM
« Respuesta #10 en: 19 de Junio de 2008, 13:24:14 »
Norberto, ya creo comprender algo.
1- Esto quiere decir que apartir de la dirección H'2100' inicial las posiciones de la eeprom, y ocurre así en todos los PIC ?

2- Esto me garantiza que las posiciones nombradas inician con el valor escrito, pero luego en ejecución del programa se pueden modificar sin ningún problema ?

gracias

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: Borrar EEPROM
« Respuesta #11 en: 19 de Junio de 2008, 13:29:16 »
1. No, para cada pic, el banco de memoria de la eeprom, comienza distinto. Para saber esto, te tienes que fijar en el datasheet correspondiente.

2. Si. Y obviamente, si necesitas en el programa un dato de la eeprom ni bien comienza a funcionar el PIC, puedes ponerle al momento de grabar, el valor deseado.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: Borrar EEPROM
« Respuesta #12 en: 19 de Junio de 2008, 13:32:36 »
Norberto, me voy a dedicar a realizar pruebas con esta información.

te quedo altamante agradecido,

hasta pronto.