j'aurais besoin dans une partie sensible de mon code suspendre provisoirement l' INTO sans suspendre les autres
si j'ai bien compris le document de 68tjs (Interruptions ATMega 328p - Tutoriels et cours - Arduino Forum) cela peux se faire a travers le registre EIMSK
pour suspendre je pense faire
EIMSK &= (0 << INT0);
et pour reprendre
EIMSK |= (1 << INT0);
ceci ne devrait pas modifier le vecteur d'interruption déclaré dans l'attachInterrupt du setup
kamill:
C'est à peu près ça sauf que pour mettre le bit à 0 ce serai plutot:
EIMSK &= ~(1 << INT0);
merci Kamill
pour detachInterrupt j'avais peur aussi de devoir refaire l'attachInterrupt complet donc de perdre du temps
merci dfgh & 68tjs
mais en fait ce n'est pas le traitement de cette interruption qui me fait perdre du temps (incrémente un int) malgré la fréquence d'interruption (anémomètre jusqu’à 100 fois par s) mais dans une partie du code ou je fais plein d'autres mesures, je vais donc chercher ailleurs ....
dfgh:
tu vas lire la vitesse du vent toutes les 10ms !!!!!!!!!!!!!!!!!!!
est ce réaliste?
non c'est les impulsions de l'anémomètre qui provoque l'interruption, je les comptes dans le traitement de l'IRQ, toutes les secondes je relève le max (pour les rafales) et toutes les minutes je fais la moyenne (vent moyen), je les publient toutes les 15mn ...
rjnc38:
mais en fait ce n'est pas le traitement de cette interruption qui me fait perdre du temps (incrémente un int) malgré la fréquence d'interruption (anémomètre jusqu’à 100 fois par s) mais dans une partie du code ou je fais plein d'autres mesures, je vais donc chercher ailleurs ....
en fait je ne faisait pratiquement rien pendant 59s et je faisait toutes les mesures, les mises en forme et la publications des mesures a la 60° seconde et en définitif elle durait 2.5s
j'ai repris mon code et réparti les mesures (temp, humid, pression, poids, ...) durant les différentes secondes et à la 60° je met en forme et je publie et maintenant toutes les actions durent moins d'une seconde
J'ai mis la maquette en test avec un simulateur de vent permanent de 100Km/h et tout se passe bien ...