TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: M.C_Barquin en 29 de Noviembre de 2003, 08:37:00
-
Hola amigos: Soy un novato en esto de los pic´s. Me gustaria saber si con el nemónico sleep se puede realizar un sistema de on/off. Es decir por ejemplo, en un sistema de control de climatización casero controlado por pic, cuando yo quiera pulsando un botón dejo al micro en sleep y se apaga todo el sistema de climatización. Si quiero encender el sistema otra vez, le provoco un reset o una interrupción al micro a traves de un botón y lo pongo en funcionamiento otra vez. Es esto psible?. Gracias
-
Hola, eso es correcto, lo ideal seria testear un pin del micro, si es pulsado, lo manda a una rutina de grabacion en la eeprom de los registros que emplees en tu programa... y luego lo mandas a SLEEP

con un circuito de reset por pulsador a MCLR, lo despiertas
, y lo primero que haria luego del reset, seria configurar puertos y cargar los datos de la eeprom... 
Suerte!
Norberto
-
Muchas gracias Norberto, espero que poco a poco me vaya saliendo el proyecto de climatización. Soy muy novato, no soy ni electrónico ni informático pero me gusta mucho y estudio de eso.Tenía esta idea pero quería que me lo corroborara una persona que sabe de esto. Gracias.
-
Hola amigos: Soy un novato en esto de los pic´s. Me gustaria saber si con el nemónico sleep se puede realizar un sistema de on/off. Es decir por ejemplo, en un sistema de control de climatización casero controlado por pic, cuando yo quiera pulsando un botón dejo al micro en sleep y se apaga todo el sistema de climatización. Si quiero encender el sistema otra vez, le provoco un reset o una interrupción al micro a traves de un botón y lo pongo en funcionamiento otra vez. Es esto psible?. Gracias
Voy a resucitar este hilo..., precisamente es lo que necesito, uso un pulsador como Ext int, lo que quiero que una pulsacion apague mandando a dormir y una vez en sleep le doy otra pulsacion y que despierte ejecutando la pulsacion como encendido, pero el problema reside que, cuando estan en sleep y le doy una vez al boton no hace nada, es necesario 2 pulsaciones , supongo que en la primera despierta en la segunda ejecuta la rutina que tengo en el vector interrupcion ext.
Para hacer lo que se propone en este hilo serian necesarios 2 botones ¿no?.
¿Que opciones tengo?
Saludos.
-
Una vez que el uC está en modo sleep sólo es posible despertarlo mediante una interrupción (o mediante reset/reencendido). Por lo tanto, seguramente se trate de un error en el diseño del algoritmo, lo que hace que requieras de 2 pulsaciones.
-
Una vez que el uC está en modo sleep sólo es posible despertarlo mediante una interrupción (o mediante reset/reencendido). Por lo tanto, seguramente se trate de un error en el diseño del algoritmo, lo que hace que requieras de 2 pulsaciones.
Ya lo he solucionado, tenia en el propio vector de int ext la instruccion sleep, al sacarla del vector me funciona, una pulsacion lo envia a dormir y otra lo despierta, asi como ejecuta la secuencia que corresponde.
¿es normal, o es el compilador?
-
Es normal,
Ejecutar el sleep dentro de la interrupción hace que el programa se quede en la interrupción mientras esta dormido, al volver a ejecutar la interrupción esta no hace nada ya que todavía no has salido de la interrupción debido al sleep.
La solución que has propuesto es la correcta.
Un Saludo.