Wie man Arduino schläft

12

Wie programmierst du einen Schlafmodus für deinen Arduino? Was sind besonders bei batteriebetriebenen Designs gute Techniken, um die CPU zu schonen, aber nur bei Bedarf aufzuwachen?

littlebirdceo
quelle

Antworten:

3

Denken Sie daran, dass abhängig von Ihrem Schlafmodus auf Ihrem Arduino mehrere Interruptquellen ausgeführt werden. timer0 generiert einen Überlauf-Interrupt, der Ihr Arduino ungefähr jede Millisekunde weckt, und der uart generiert jedes Mal einen Interrupt, wenn ein Zeichen eingeht. ... und natürlich gibt es die externen Interrupts an Pin 2 und 3, die Sie möglicherweise mit der Funktion attachInterrupt aktiviert haben oder nicht.

Wenn ein Interrupt auftritt, wird Ihre Skizze aus dem Ruhezustand geweckt und nach der Wartung des Interrupts an dem Punkt weiter ausgeführt, an dem sie in den Ruhezustand übergegangen ist. Die Lösung besteht darin, Ihre Skizze so einzurichten, dass sie sich jedes Mal wieder in den Ruhezustand versetzt, es sei denn, es ist wirklich Zeit aufzuwachen.

user64
quelle