Bonjour
Je viens vers vous car je suis suis à bout d'idée pour résoudre mon problème. Voici mon code
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 rooter to port 20, 21 for simulate a CLK
//display
Serial.print("Compteur haut");
Serial.println(compteurHaut);
delay(1000);
Serial.print("Compteur bas");
Serial.println(compteurBas);
}
Suivant le mapping INT0 et INT1 correspondant au pin20,21
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
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");
}
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 !
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