TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: joscar66 en 24 de Febrero de 2005, 18:38:00
-
Hola amigos,
Pues ese es mi problema. Estoy haciendo un contador pero necesito saber en que valor iba cuando se fue la luz y tomar algunas decisiones cuando vuelva, es decir que un reset no me sirve.
Tienen alguna sugerencia??
-
la luz es la corriente?
yo tb tenia esa duda, como puede un programa almacenar un valor y que este no se pierda al resetear el pic
juaco
-
Si amigo es la corriente, por aca la llamamos asi (de cuando en vez).
Pues si tu problema es solo almacenar un dato para luego saber cual es te recomendaria utilizar la eeprom del pic.
Pero el caso mio es distinto ya que debo tomar algunas decisines cuando el pic se haya reseteado por un bajonazo de corriente.
Estuve investigando y creo que es algo con el Brown on Reset
Observe tambien algunas sentencias de CCS como la de restar_cause();
pero aun no se como implementar.
Alguna idea???
-
Bueno, si por aca tambien se usa, se corto la LUZ, en fin , mira en el foro hay una aplicacion similar, pero te apunto como lo resolvi en un a oportunidad, en realidad lo que yo necesitaba era, guardar un registro de ram en la eeprom cuando me quedaba sin energia, entonces lo que hice fue independizar la fuente de del PIC, osea que puse un 78L05 solo alimentando el micro, la entrada de este regulador le conecte un capacitor electrolitico de alto valor, 1000 uF por ejemplo, a traves de un diodo, entonces ese capacitor me proveia energia durante un tiempo ( 6 segundos) energia desde que se cortaba la LUZ, el pin RB0 configurado como inetrrupcion externa por flanco descendente detectando si esta o no la fuente y listo, al desaparecer la LUZ, el pin rb0, llama a la subrutina que graba el registro en la RAM, por supuesto, los 6 segundos sobran pero bueno, puedes calcular en base a la corriente aproximada que drena el PIC que son 2 ma, el tiempo que te durara el capacitor, si lo quieres mas bonito, la verdad con tu proyecto sumando un RTC y usando el conversor A/D no solo se pueden loggear los cortes de la compañia distribuidora con fecha y hora si no tambien se puede registrar la tension, buena idea, puede ser un proyecto interesante, bueno cuentame si se entiende,
saludos
-
Hola,
yo suelo utilizar un supervisor de tension tipo max690. Este integrado provee el reset al encender la "luz"
y tambien da un aviso cuando la tension baja de cierto valor.
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1334
Depende del tiempo que necesites para guardar cosas y del tipo de circuito, puede ser buena idea tomar el valor de referencia que uses para saber si no hay alimentacion de una tesion diferente a la que alimenta el micro. Es decir...... si por ej. tu circuito tiene 5V y 12V y tu sabes que los 12 por la carga que tiene van a caer antes...conseguirias un tiempo superior que si el aviso esta referenciado a los 5V.
Si tomas la referencia de los 5V, pues si que algunos micros llevan un supervisor interno (no conozco el pic), no necesitarias de un max690.
Otra idea, que no he probao seria testear directamente la tension del secundario del transformador. Con un detector de paso por cero y viendo que en x tiempo no hay tension ??? claro y con un condensador suficiente para aguantar los 5V. El aviso seria mas rapido, que esperar a que caiga la carga en el condensador. Alguien ha probado ese metodo???
Otra opcion podria ser..... guardar datos en una ram externa con bateria. Asi no perderias los datos. Lo mismo con una e2p externa (aunque es mas lenta). Como han dicho antes tb con la e2p interna del micro. Me refiero a los datos que no quieres perder en caso de apagado. Grabarlos ahi de continuo, no en el apagon.
Otra opcion, guardarlos como hasta ahora, en la ram de tu micro, y si este tiene la opcion de mandarlos a dormir con el aviso de apagado, mantener la ram intacta hasta el proximo reset alimentando al micro con una bateria de 3.6V. Suele consumir microamperios en powerdown el micro (repito, no se el pic
imagino k tb)
Ya no se me ocurre mas 
Un saludo