J'aimerais utiliser un attachInterrupt pour lire rapidement mon encodeur

Ok merci pour le conseil concernant le débordement, je ne savais pas.

J'essaye d'imprimer sur le port COM le nombre d'interruptions pendant la rotation du moteur mais impossible pour l'instant.

Je ne sais pas où placer :

  Serial.println("");
  Serial.print(_EncoderTicks);
  Serial.print("\n");

  delay(20);

Voici mon code qui ne m'affiche le nombre qu'une fois l'itération de la boucle faite :

#include <digitalWriteFast.h> 
#define EncoderInterruptA 0
#define EncoderInterruptB 1


const int sensA=6;        //borne sens horaire du moteur sur pin 6 du shield moteur
const int sensB=7;        //borne sens anti-horaire du moteur sur pin 7 du shield moteur
//const int L298N_enA=4;    //contrôle de la vitesse du moteur sur pin 4 du shield moteur
int pwmMoteur=5;          //borne du capteur

unsigned char i = 0;
volatile long _EncoderTicks = 0;



void setup()
{
Serial.begin(9600); //connection série initialisée à 9600 bauds/s
  attachInterrupt(EncoderInterruptA, InterruptA, CHANGE);
  attachInterrupt(EncoderInterruptB, InterruptB, CHANGE);
  
pinMode(pwmMoteur,OUTPUT) ; 
pinMode(sensA,OUTPUT) ;  
pinMode(sensB,OUTPUT) ;

 
}

void loop()
{
  
  
  while(i<5) {

  Serial.println("");
  Serial.print(_EncoderTicks);
  Serial.print("\n");

  delay(20);

Serial.println("");
Serial.print(i+1);

//rotation sens horaire
digitalWrite(sensA,HIGH) ;
digitalWrite(sensB,LOW) ;
analogWrite(pwmMoteur,255) ;
delay(500) ; 

//pour l'arret
digitalWrite(sensA,HIGH) ;
digitalWrite(sensB,HIGH) ;
delay(500) ; 

//rotation sens anti-horaire
digitalWrite(sensA,LOW) ;
digitalWrite(sensB,HIGH) ;
delay(500) ;  

//pour l'arret
digitalWrite(sensA,HIGH) ;
digitalWrite(sensB,HIGH) ;
delay(500) ;  

i++;

 }

 }

 
// Routine de service d'interruption attachée à la voie A du codeur incrémental
void InterruptA()
{
  if (digitalReadFast2(EncoderInterruptA) == digitalReadFast2(EncoderInterruptB)) {
    _EncoderTicks--;
  
  }
  else {
    _EncoderTicks++;
   
  }
}
 
// Routine de service d'interruption attachée à la voie B du codeur incrémental
void InterruptB()
{
  if (digitalReadFast2(EncoderInterruptB) == digitalReadFast2(EncoderInterruptA)) {
    _EncoderTicks++;
    
  }
  else {
    _EncoderTicks--;
    
  }
}