2016-05-02 8 views
0

Ich habe eine Anwendung, in der ich alle 10 Sekunden eine Magnetspule blinken lassen möchte (Auslöser für eine Sekunde) und gleichzeitig eine serielle Eingabe erhalte, um einen Servomotor zu drehen.Welche ist eine bessere Option für Multitasking in Arduino - Millis() oder Scheduler-Bibliothek?

Die delay() erstellt Konflikte, so habe ich die millis() Funktion, die leicht zu verstehen ist gegangen.Aber in der Arduino-Website haben sie etwas namens die Scheduler-Bibliothek, die ziemlich einfach aussieht (habe es nicht versucht).

Also was ist besser und effiziente Option zu prüfen, ist es millis() oder Scheduler?

Danke,

Antwort

0

Die Scheduler-Bibliothek verwendet millis() als auch die Verzögerung zwischen Aufgaben zu berechnen.

Um eine Funktion mit dem Sheduler zu verbinden, muss ein void f(void) Prototyp vorhanden sein.

Um eine Funktion hinzufügen zu können, die etwas zurückgibt oder Parameter enthält, müssen Sie sie in eine andere Funktion des void f(void) Prototyps einbinden.

IMHO, eine Sheduler-Bibliothek ist nützlich, um Ihren Code zu organisieren, wenn Sie mehrere Aufgaben haben (Diese Bibliothek hat maximal 10 Aufgaben, aber Sie können sie ändern).

In Ihrem Fall haben Sie nur zwei Aufgaben. Es kann besser sein, einfach einen eigenen kleinen Sheduler mit millis() zu benutzen.

+0

@ Ouss4Danke für die Info.Ich habe es mit Millis() versucht und es hat gut funktioniert. :-) – ASHKING