Grabar datos externos y que no se borren al resetear

#1
Muy buenas...

Tengo un PIC18F442 montado en una placa y que puede recibir una señal de 8 bits por el puerto B. No tengo ningún problema en leer esa señal y almacenarla en una variable de 1 byte. Ahora viene el problema: lo que quiero hacer es que el valor de esa variable se guarde en la memoria, pero que si apago la placa o reseteo el programa del PIC, no se borre el dato que ha leído. ¿Alguna idea de cómo enfrentarme a esto o qué tengo que usar? Uso el MPLAB programando en C, aunque se puede incrustar código en ensamblador si fuera necesario.

La idea es que el PIC tenga dos modos de funcionamiento, uno que sea leer el puerto B y almacenarlo en memoria ("programación"), y otro que sea leer el valor que tenía guardado en memoria ("normal"). Estos dos modos de funcionamiento los distingo usando otra señal que va a otro puerto (no hay ningún problema en ello). Por tanto:

- Si inicio el modo de funcionamiento "programación", se lee el puerto B y se guarda en memoria de tal forma que no se borre al apagar la placa o hacerle un reset al PIC.
- Si inicio el modo de funcionamiento "normal", se lee el dato que se tenga almacenado en la memoria del PIC.

Gracias por la ayuda, un saludo
 
#2
¿Alguna orientación de por dónde o qué debo buscar? ¿O si es o no posible hacer lo que pido?
 
#3
¿Los pic's no tienen una eeprom para datos que dice el datasheet que guarda los datos 240 años sin alimentación? A ver si intentamos solucionar nosotros las cosas antes de preguntar
 
#4
(Mi respuesta, algo menos borde, ya que soy novato y no me gustaria que me respondieran asi D)

Bastaria con que almacenases los datos en la EEPROM, aunque su proceso de escritura es algo mas lento (requiere de mas instrucciones).

Saludos
 
#5
Gracias ya está solucionado y funcionando, desconocía que el PIC dispusiera de EEPROM :eek:

Al que le interese... hay una librería eeprom.c y eeprom.h que vienen las funciones para leer y grabar la eeprom... pues la mayoría del código que encontré era ensamblador y yo estoy programando en C. Esta librería se encuentra sin dificultad en google, yo le tuve que hacer una modificación para mi PIC en particular.

Chau
 
#6
shakaran dijo:
(Mi respuesta, algo menos borde, ya que soy novato y no me gustaria que me respondieran asi D)

Bastaria con que almacenases los datos en la EEPROM, aunque su proceso de escritura es algo mas lento (requiere de mas instrucciones).

Saludos
A mi tampoco me gusta ser borde, pero estoy cansado de que la gente pregunte las cosas sin molestarse en solucionarlas por si mismos, en este caso era tan sencillo como leer el datasheet del componente.

Yo llevo en el tema de los micros poco tiempo, desde esta navidad pero tengo claro que se aprende mas intentando solucionar las cosas uno mismo que con que te lo den todo hecho, y que cuando uno debe consultar es cuando no encuentra ninguna solucion despues de buscar en datasheet, buscadores de internet y buscadores de los foros
 
Arriba