Pregunta:
¿Qué está provocando que mi Uno se despierte?
craigkoiter
2014-07-08 23:16:47 UTC
view on stackexchange narkive permalink

NOTA: este código estaba funcionando perfectamente bien en otro programa.

Tengo un fragmento de código simple que pone al Arduino a dormir. Cuando esté terminado e integrado en mi proyecto, solo activará el procesador cuando una alarma de un RTC externo active una de las interrupciones del hardware.

  #include <avr / sleep.h> # include <avr / power.h>void setup () {Serial.begin (9600);} void loop () {set_sleep_mode (SLEEP_MODE_PWR_DOWN); // modo de suspensión profunda Serial.println ("El dispositivo se va a dormir ..."); sleep_enable (); // pone el dispositivo a dormir sleep_disable (); // El dispositivo se reinicia aquí al despertar Serial.println ("El dispositivo está despierto ..."); retraso (1000); // para ralentizar la salida serial}  

En teoría, el programa debería apagar el procesador indefinidamente porque no hay nada disponible para reactivarlo.

Sin embargo, el el dispositivo continúa despertando inmediatamente después de apagarse.

He intentado adjuntar las interrupciones con la esperanza de que fuera algún tipo de función de perro guardián anómala. He intentado atar los pines de interrupción a + 5V y también (en un intento por separado) a GND. Nada ha ayudado.

¿Qué está provocando que el procesador (y / o programa) se despierte constantemente?

One responder:
#1
+8
Ignacio Vazquez-Abrams
2014-07-08 23:28:39 UTC
view on stackexchange narkive permalink

sleep_enable () permite que la MCU duerma, pero no causa que se duerma. Llame a sleep_cpu () después de habilitar.

No puedo creer que lo haya pasado por alto, funciona perfectamente.


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...