Autor Tema: Duda con sleep() sin WDT, con INT_EXT y Timer1 ON  (Leído 1514 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado DarkVect

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 302
Duda con sleep() sin WDT, con INT_EXT y Timer1 ON
« en: 17 de Noviembre de 2008, 08:54:49 »
Hola,

Tengo una duda con el sleep, concretamente no se si lo he ubicado en el sitio exacto del código. Lo que quiero es que al pulsar un botón (INT_EXT) se duerma el PIC y sólo se despierte al volver a pulsar. El sistema es una máquina de estados y uno de ellos es el modo sleep en el que no se hace nada (obvio).

Este es la parte de código:

Código: [Seleccionar]
#INT_EXT
void mode_button()
{
    if(mode != SLEEP)
    {
          save_current_mode();
          mode = SLEEP;
          sleep();
     }
     else
     {
          load_prev_mode();
     }
}

Las dos funciones del código sirven para guardar el estado del sistema y poner las salidas a cero para no consumir y para cargarlo de nuevo el estado que había antes del sleep, respectivamente.

La duda es, el Timer1 me va a despertar si no lo deshabilito antes del sleep, no? Al volver del sleep, se ejecuta la interrupción entera o se sigue después del sleep?

Mil gracias!!

« Última modificación: 17 de Noviembre de 2008, 08:56:57 por DarkVect »