Programación Específica > Microcontroladores

 Quemar Datos Permanentemente

(1/3) > >>

karen81:
:huh: hola, en el proyecto que estoy realizando, tengo 100 datos con el que el programa debe trabajar, y no deben ser modificados solo leidos, mi pregunta es como guardo estos datos de manera permanente de tal forma de que cada vez que se corra el programa no estarlos introduciendo si no que ya esten ahi, si no mal entiendo debo quemarlos en la eeprom verdad????, con las rutinas que estan en el datasheet(pic16f87), mi pregunta es creó el programa que introduce los 100 numeros con las rutinas de quemado de eeprom, lo quemo en el micro y este programa quemara los datos en la eeprom permanentemente verdad?,  luego tendria que borrar este programa, pero los datos ya estarian en la eeprom verdad????????????? :huh:
 :alien:  :comp:

si estoy equivocada, por favor haganmelo saber por favor. :comp:

J1M:
Si no quieres variar esos valores, quizá lo mejor sea almacenarlos en la ROM del PIC, de esa forma quedaran permanentes y no tendran q estar escribiendose en la eeprom cada vez q se inicie el sistema.

en ASM no se como se hace, te lo pongo en C para el compilador CCS y quizá te pueda servir de ayuda:

Syntax:
#rom address = {list}
 
Elements:
address is a ROM word address, list is a list of words separated by commas

Examples:
#rom  0x2100={1,2,3,4,5,6,7,8}

saludos!

karen81:
:huh: Gracias por tomarte la molestia, pero yo no se programar en C, ademas este proyecto debe ser hecho en ensamblador.

gracias de todas formas.


sigo en espera de ayuda S.O.S  :(

oldkami:
lo que comentas puede ser realizado de muchas formas.

lo mas sencillo, y si esos datos no se van a modificar, es almacenarlos en forma de tabla, y realizar una rutina para accesarlos como tal.. puedes encontrar muchos ejemplos de implementación de tablas.
eJ.

movlw Posicion ;el dato que deseas consultar
call   TABLA    
banksel miregistro
movwf miregistro ; mueves al dato a donde necesites.

TABLA
      addwf PCL,F             ;computa la posición
      dt 0x01,0x02, d'10',a'H' ; los datos que no se deben perder :)
      dt 0x10,...,0x1F
      dt ,...,0xFF

este ejemplo es muy basico y la tabla debe ser ubicada de tal forma que no pase los limites de la pagina, recuerda que el MPLAB posee unlimite de caracteres por linea, por eso hay que colocar las instrucciones dt consecutivamente.

recuerda que la EEPROM, y la FLASH son practicamente lo mismo y la instrucción que escribe la una, sirve para escribir la otra, este es el principio que utilizan los bootloaders,  solo que la escritura de la flash es algo más lenta y si estoy bien el programa detiene su ejecución mientras se ejecuta. Lo que se guarde en cualquiera de las dos no se borra, bueno al menos en muy muy largo tiempo :). si lo que necesitas es que estos datos sean modificables desde otra fuente como un PC y queden fijos, tal vez lo mejor sea implementar algo parecido a un bootloader.

suerte

oldkami

karen81:
:huh: gracias por su tiempo, pero sigo en las mismas, no se programar en C y lo de la tablas, no entiendo donde debo guardarla ni como


pero gracias de todas formas :unsure:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa