Bonjour
Je viens vers vous car je suis suis à bout d'idée pour résoudre mon problème. Voici mon code
Suivant le mapping INT0 et INT1 correspondant au pin20,21Code:int ledPin = 13; int compteurBas = 0; int compteurHaut = 0; void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); // Enable Output for pinMode(6, OUTPUT); //PWM OUTPUt sei(); //Enable Interruption EIMSK |= (1 << INT0); EIMSK |= (1 << INT1);//Enable Extern Interrupt on pin 20 and 21 INT0, INT1 EICRA = 11; // Set detection INT1 as falling Edge, ans INT0 as Rissing Edge } ISR(INT0_vect) { digitalWrite(ledPin, HIGH); compteurHaut++; //Chek incrementation } ISR(INT1_vect) { digitalWrite(ledPin, LOW); compteurBas++; //Chek incrementation } void loop() { analogWrite(6, 175); //PWM rout to port 20, 21 to simulate a CLK //display Serial.print("Compteur haut"); Serial.println(compteurHaut); delay(1000); Serial.print("Compteur bas"); Serial.println(compteurBas); }
Les pin 20,21 étant utilisé par le bus I2C j'ai essayé de trigger une interruption sur les PIN 2 PIN 3 car j'aurais besoin de mon bus I2c pour plus tard. Suivant le mapping de la carte les PIN 2 et PIN3 corresponde au bit INT4 et INT5 dans le registre EIMSK. Je mets donc leur bit à 1 pour autoriser l'interruption sur ces 2 pins.
Ce qui donne
Mais là, le programme se bloque complètement, impossible d'afficher le Serial.println. J'ai pensé que INT 4 et INT5 ont quelques choses à voir avec la communication série. J'ai donc fait un test en demandant de mettre la led13 à l'état haut à la place d'afficher un texte et le résultat et le même !Code:void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); // Enable Output for pinMode(6, OUTPUT); //PWM OUTPUt sei(); //Enable Interruption EIMSK |= (1 << INT4); EIMSK |= (1 << INT5);//Enable Extern Interrupt on pin 2 and 3 INT4, INT5 Serial.println("Youppi j'ai réussi à programmer le registre EIMSK"); }
Le programme reste bloqué à la configuration du registre EIMSK et ne réagit à plus rien il ne va même pas dans la boucle void loop()
Mapping de la carte Mega. MappingCarteArduinoMega2560
Merci d'avance pour votre aide et j’espère que j'ai été assez claire dans mes explications
Cordialement
Guillaume Shindra
-----