Thread arduino uno

Bonjour à tous,
J'aurai besoin de votre aide pour un probléme sur mon arduino uno.
J'ai une fonction dans mon programme qui fait sonner mon buzzer (sonnerBuzzer()), mais mon souci est que je voudrais pouvoir l'arrêter grace à une autre fonction(acquitterAlerte()). Le problème est que tant que la fonction sonnerBuzzer() n'est pas terminée , je ne peux pas faire appel à l'autre fonction acquitterAlerte(). J'ai donc pensé a des threads mais j'ai appris que arduino ne prenais pas en charge cette fonctionnalité. En cherchant j'ai vu qu'il existait des proto-threads et j'ai tenté de les faire marcher mais sans succès.
Peut-être n'ai-je pas bien compris comment on se sert de cette librairie, ou alors si elle ne me permet pas de résoudre mon problème auriez-vous une solution alternative?

Ci dessous vous trouverez les extraits de code concernés par ma tentative de proto-threads.

Je vous remercie par avance pour les futures réponses.

cordialement,
Skiiro

Lien de la librairie : 老师穿丝袜被弄高潮在线观看-无码精品a∨在线观看十八禁-免费精品无码av片在线观看-亚洲av永久无码精品国产精品

#include <pt.h>

static struct pt pt1, pt2; //declare les proto-threads

void setup(){
PT_INIT(&pt1);
PT_INIT(&pt2); }

void loop(){
sonnerBuzzer(&pt1);
acquitterAlerte(&pt2); }

static int sonnerBuzzer(struct pt *pt){
PT_BEGIN(pt);
// Ici se trouve une longue partie de code qui se charge de jouer une longue succession de notes
PT_END(pt); }

int acquitterAlerte(struct pt* pt2){
PT_BEGIN(pt2);
delay(2000);
PT_EXIT(&pt1); // J'essaie de stopper le premier proto-thread
PT_END(pt2); }

salut
Et les interruptions c'est fait pour qui ? :wink:

Le problème c'est ta fonction sonnerBuzzer qui est bloquante.
Il faudrait l'écrire sous la forme d'une boucle. Dans chaque itération de la boucle tu émets une note et ensuite tu testes si la fonction acquitterAlerte a positionnée un drapeau qui fera sortie de la boucle.

Bonjour,

Utilise la librairie Tone fournie de base avec l'ide. Elle utilise un timer hardware et peut être arrêté à volonté.