Interruption pas exécutée entièrement

Bonjour à tous,
j'essaie de mettre en oeuvre les interruptions mais j'ai un soucis: la fonction appelée par l'interruption n'est pas toujours exécutée entièrement.

J'ai ce code:

      pinMode(contact_av_G,INPUT);
      digitalWrite(contact_av_G,HIGH); // active les R de pull-up
      attachInterrupt(0,int_rot_G,FALLING); // active les interruptions

// Traitement des interruptions:

void int_rot_G()
{
        status=2;
        Serial.println(">>>Inter G !!!");
        arret();
        
}

Sur l'entrée 2, j'ai un contact qui amène une masse lorsque je ferme un micro switch.
Sur la console, j'ai bien >>>Inter G !!! qui s'affiche, mais la fonction arret() n'est pas toujours exécutée et le prog continue à s'exécuter >:(.

De quoi cela peut-il bien venir ??? :-/

bonsoir,

désactive les interruptions le temps de traiter arret():
commande noInterrupts() en début de traitement de l'interruption
Réactive ensuite les interruptions à la fin de arret() avec la commande interrupts()

Gromain

Même remarque que précédemment, avec peut être un effet de rebond sur le switch lors du contact (double contact), d'où deux interruptions successives...et pas le temps de finir la fonction entre temps.

A+
JC

Merci pour les réponses, je vais essayer.
Par contre, si l'interruption était stoppée à cause d'un rebond, donc le redéclenchement de l'inter, la fonction devrait tout de même être complètement exécutée lors de la 2eme interruption, non ? Car à l'heure actuelle, je retourne dans la fonction loop, comme si rien ne s'était passé.

Je penchais plutôt pour un pb genre alim. L'appel de la fonction arret qui coupait 2 moteurs assez consommateurs, et qui aurait pu provoquer une fluctuation niveau alimentation. J'ai séparer l'alim de commande et l'alim de puissance sans résultats.

Je vais donc tester l'inhibition des interruptions.

Par contre, si l'interruption était stoppée à cause d'un rebond, donc le redéclenchement de l'inter, la fonction devrait tout de même être complètement exécutée lors de la 2eme interruption, non ?

Il faudrait être certain que la gestion des IT est réentrante. Si quelqu'un à la réponse ....