Quel est le secret de l'arduino `yield ()?
L'Arduino docs expliquer yield()
à https://www.arduino.cc/en/Reference/Scheduler en ce qui concerne la Cause. Apparemment, il fait partie de la bibliothèque du Planificateur:
#include <Scheduler.h>
Cependant, je peux appeler yield()
sur mon Nano ou ESP8266 sans y compris le Planificateur lib -- mais seulement dans mon programme principal, pas dans les fichiers à inclure. Aussi, l'include ne fonctionne pas sur ma non-Cotisations.
Quel est le secret que je suis absent sur yield()
ou - ce qui ne yield()
faire sur un Arduino plates-formes autres que de Raison?
Est une autre d'en-tête que vous avez inclus dans votre fichier principal, y compris
Pas de. Vous pouvez avoir un squelette d'esquisse qui appelle simplement rendement() et compiler. Il doit y avoir certains secrets de la magie. Si le downvote est à toi de bien vouloir me faire savoir ce que j'aurais fait des recherches au-delà de googler en haut et en bas de l'univers....
Scheduler.h
?Pas de. Vous pouvez avoir un squelette d'esquisse qui appelle simplement rendement() et compiler. Il doit y avoir certains secrets de la magie. Si le downvote est à toi de bien vouloir me faire savoir ce que j'aurais fait des recherches au-delà de googler en haut et en bas de l'univers....
OriginalL'auteur andig | 2015-12-28
Vous devez vous connecter pour publier un commentaire.
La
yield()
fonction est également mis en œuvre à l'intérieur de la ESP8266 bibliothèques:C'est pourquoi vous pouvez appeler
yield()
à partir de votre programme principal où l'ESP8266 en-tête est inclus.Voir ESP8266 Chose de Branchement Guide.
Mise à jour:
yield()
est définie dans l'Arduino.h:yield()
est également déclarée danshooks.h
comme suit:Sur le
Nano
, il n'a probablement rien (sauf si vous avez d'autres bibliothèques#included
).Avez-vous d'autres bibliothèques incluses sur le Nano?
Eh bien, au moins, c'est défini dans l'Arduino.h comme ceci:
void yield(void);
. Je vais le chercher plus loin, et revenir vers vous.Voir mise à jour.
Donc, effectivement, à l'aide de
yield()
est une odeur de code.OriginalL'auteur Danny_ds
rendement est une "faiblesse" de la fonction d'Arduino de base pour AVR. J'en vois un appel à l'intérieur de câblage.c.
Cela signifie que le rendement() fonction sera exécutée au cours de la boucle de la fonction de temporisation. Ainsi, le rendement devrait être utilisé pour un traitement de fond tandis que le délai se termine ou pour faire une fonction avec fonction de temporisation.
Remarque: le rendement doit être défini dans l'application/esquisse
Mise à JOUR: La question m'a excité de faire un peu de post sur le rendement et d'autres fonctions cachées depuis l'arduino de base.
OriginalL'auteur yahya tawil