Bonjour à tous.
J'ai cablé les deux interruptions de mon Arduino Uno comme suit :

Lorsque "j'interruptise" un seul bp avec une frequence de qques Hz, parfois, ce n'est pas la bonne interruption qui s'enclenche. C'est un grand mystere ....
const int DUREE_ANTI_REBOND = 300; // milli secpondes antirebond pour les switchs
boolean action_clavier = false;
unsigned long timer_touche_suivante;
unsigned long timer_touche_enter;
void setup()
{
Serial.begin(9600);
activer_interruptions();
}
/* loop */
void loop()
{
// allumer le voyant de la carte
digitalWrite(13, HIGH);
// delay
for(int i = 0;i <= 1000; i++) {
if(action_clavier) continue;
delay(1);
}
// eteindre
digitalWrite(13, LOW);
}
/* fin de loop */
// activer les interruptions
void activer_interruptions() {
attachInterrupt(0, interruption_suivante, RISING);
attachInterrupt(1, interruption_enter, RISING);
}
// desactiver les interruptions
void desactiver_interruptions() {
detachInterrupt(0);
detachInterrupt(1);
}
// ****************************************************** suivante
void interruption_suivante()
{
desactiver_interruptions();
if (millis() > timer_touche_suivante + DUREE_ANTI_REBOND) {
timer_touche_suivante= millis();
action_clavier = true;
Serial.println("touche suivante");
}
activer_interruptions();
}
// ****************************************************** enter
void interruption_enter()
{
desactiver_interruptions();
if (millis() > timer_touche_enter + DUREE_ANTI_REBOND) {
timer_touche_enter= millis();
action_clavier = true;
Serial.println("touche Enter");
}
activer_interruptions();
}
En utilisant
seulement le bouton poussoir "touche suivante" par exemple voici ce que j'obtiens dans le moniteur serie.
touche suivante
touche suivante
touche Enter -> aie aie aie

touche suivante
touche suivante
touche suivante
touche suivante
touche suivante
etc ........
Ca fait la même chose quelque soit l'interruption utilisée, et la frequence d'apparition de l'interruption mystere n'est pas fixe. parfois il faut 2 ou trois actions sur le BP, parfois il en faut 50 ou plus.
Je me demande si j'ai bien cablé, si 10k est suffisant comme resistance de pulldown. Bref, encore une fois beaucoup de questions et le forum Arduino pour vos réponses.
Je vous remercie d'avance.