Suite a la lecture d'un tuto de Barbudor sur le protocole de comunication,j'ai lu ceci:
Quote
En effet, ceux qui ont eu la curiosité de regarder le code de la bibliothèque core de l'Arduino se
sont aperçu qu'il y a une fonction main() écrite de la façon suivante :
void main()
{
setup();
while(1)
loop();
}
Il est important de se rappeler que l'absence d'un système multi-tâche impose que les tâches
coopèrent entre-elles. Aucune tâche ne doit se bloquer en attente d'un événement et ainsi
monopoliser le processeur pour elle toute seule, empêchant d'autre tâche de s'exécuter. Les
appels à delay() sont a proscrire. Les boucles trop longues sont a découper en petits
morceaux. Chaque tâche doit être découpée en sous-tâches élémentaires qui seront exécutée
depuis la boucle (loop) de l'Arduino. Chaque tâche est responsable de séquencer ses soustaches
élémentaires et de rendre la main à la boucle aussi souvent que possible pour
permettre l'exécution des autres tâches.
Une bonne méthode pour ce type de fonctionnement est d'implémenter les taches sous la
forme de machines d'état.
Ainsi pour rentrer dans le "cadre" Arduinon chaque tâche doit fournir au moins une fonction de
setup() pour l'initialisation et une fonction de loop(). Le code global de l'application peut
ainsi s'écrire :
void setup()
{
task1_setup();
task2_setup();
task3_setup();
}
void loop()
{
task1_loop();
task2_loop();
task3_loop();
}
sont aperçu qu'il y a une fonction main() écrite de la façon suivante :
void main()
{
setup();
while(1)
loop();
}
Il est important de se rappeler que l'absence d'un système multi-tâche impose que les tâches
coopèrent entre-elles. Aucune tâche ne doit se bloquer en attente d'un événement et ainsi
monopoliser le processeur pour elle toute seule, empêchant d'autre tâche de s'exécuter. Les
appels à delay() sont a proscrire. Les boucles trop longues sont a découper en petits
morceaux. Chaque tâche doit être découpée en sous-tâches élémentaires qui seront exécutée
depuis la boucle (loop) de l'Arduino. Chaque tâche est responsable de séquencer ses soustaches
élémentaires et de rendre la main à la boucle aussi souvent que possible pour
permettre l'exécution des autres tâches.
Une bonne méthode pour ce type de fonctionnement est d'implémenter les taches sous la
forme de machines d'état.
Ainsi pour rentrer dans le "cadre" Arduinon chaque tâche doit fournir au moins une fonction de
setup() pour l'initialisation et une fonction de loop(). Le code global de l'application peut
ainsi s'écrire :
void setup()
{
task1_setup();
task2_setup();
task3_setup();
}
void loop()
{
task1_loop();
task2_loop();
task3_loop();
}
Je voudrais bien quelle que explication et exemples sur le fonctionnement sur Task1-setup() et le loop car je ne comprends par.

