Hola,
Llevo poco tiempo trabajando con Niple y estoy modificando un programa realizado por un antiguo compañero con un PIC18F46K22.
Os explico en que consiste el programa.
1)El sistema trabaja dependiendo si queremos que trabaje durante un tiempo definido o durante una definida cantidad de impulsos recibidos desde el exterior.
2)Una vez transcurrido el tiempo o los impulsos definidos, el sistema pasa a un modo de pausa el cual se basa en un tiempo o cantidad de impulsos,como en el modo de trabajo pero con parámetros independientes.
3)El operario puede combinar el modo de trabajo con el de pausa tal y como desee,es decir, puede configurar el modo de trabajo por tiempo y el modo de pausa por eslabones. Asi en todas las posibles combinaciones.
Ahora viene mi pregunta, antes cuando apagabamos el controlador y lo volvíamos a encender el sistema estaba programado para que empezase con los ajustes realizados previamente pero iniciándolos desde el principio.
Es decir, si el operario configuraba 100 impulsos para modo trabajo daba igual que durante el trabajo esos impulsos disminuyeran ya que el programa se iniciaría otra vez desde 100.
Lo mismo sucede si esta programado por tiempo.
Por mi parte, he modificado el programa haciendo lo siguiente he conseguido guardar la cantidad de impulsos( Los contabilizados, no los ajustados como parámetro) que llevaba en el mismo momento antes de apagar el equipo.
Para ello, cada vez que recibimos un impulso lo descontamos en el contador que tenemos para saber el numero de impulsos restantes que quedan para pasar al mode de trabajo o pausa. Despues de esa instruucion cargo el valor actual a una variable y la guardo en la eeprom.
Eso cada vez que recibimos un impulso,asi cuando arranquemos la maquina desde los valores de la eeprom cargaremos el valor que llevaba el contador.
Esto funciona sin problemas, pero veis alguna otra alternativa que me evite tener que guardar en la eeprom cada vez que reciba un impulso.
El desafío viene ahora, cuando la maquina esta programada para trabajar con tiempo como podía dejar guardado el tiempo antes de que apagase sin tener que ir guardándolo cada segundo?
No me va a realizar muchas escrituras en la eeprom??