1
Vos projets / interruptions
« le: octobre 25, 2022, 02:12:24 pm »
Bonjour
De retour parmi vous aprés une longue absence....
Mon réseau ferroviaire est commandé par des ARDUINO MEGA 2560R3, dans ce cadre j'utilise des interruptions afin de ne pas "rater" une détection dans un canton avec des ILS; je controle l'état des variables avec mon écran d'ordinateur via la liaison série. Tout cela fonctionne à merveille.
J'ai fais une mise à jour de l'IDE (version1.8.19 sous windows 7) et depuis j'ai perdus l'affichage sur mon écran.
Aprés recherche je constate que la ligne de programme en cause est " accroche ISR aux Pins"; sans cette ligne tout redevient normal. Ce problème n'existait pas avant la màj !
Quelqu'un peut'il me venir en aide ?
Voici la partie de programme en cause:
#include <PinChangeInt.h>
const byte pinarriveeG1 = 50; //capteurs arrivee canton G1
void interruptarriveeG1() {
static unsigned long dateDernierChangement = 0;
unsigned long date = millis();
if ((date - dateDernierChangement) > dureeAntiRebond) {
occupationG1 = 0;
dateDernierChangement = date;
}
}
void setup() {
Serial.begin (9600);
//---------------CANTON G1--------------
// Programme les broches des capteurs en E/S
pinMode(pinarriveeG1, INPUT_PULLUP);
// accroche les ISR aux pins
PCintPort::attachInterrupt (pinarriveeG1, interruptarriveeG1, FALLING);
De retour parmi vous aprés une longue absence....
Mon réseau ferroviaire est commandé par des ARDUINO MEGA 2560R3, dans ce cadre j'utilise des interruptions afin de ne pas "rater" une détection dans un canton avec des ILS; je controle l'état des variables avec mon écran d'ordinateur via la liaison série. Tout cela fonctionne à merveille.
J'ai fais une mise à jour de l'IDE (version1.8.19 sous windows 7) et depuis j'ai perdus l'affichage sur mon écran.
Aprés recherche je constate que la ligne de programme en cause est " accroche ISR aux Pins"; sans cette ligne tout redevient normal. Ce problème n'existait pas avant la màj !
Quelqu'un peut'il me venir en aide ?
Voici la partie de programme en cause:
#include <PinChangeInt.h>
const byte pinarriveeG1 = 50; //capteurs arrivee canton G1
void interruptarriveeG1() {
static unsigned long dateDernierChangement = 0;
unsigned long date = millis();
if ((date - dateDernierChangement) > dureeAntiRebond) {
occupationG1 = 0;
dateDernierChangement = date;
}
}
void setup() {
Serial.begin (9600);
//---------------CANTON G1--------------
// Programme les broches des capteurs en E/S
pinMode(pinarriveeG1, INPUT_PULLUP);
// accroche les ISR aux pins
PCintPort::attachInterrupt (pinarriveeG1, interruptarriveeG1, FALLING);