#define clockPinX 8
  #define clockPinY 9
  #define clockPinZ 10
  #define dataPinX 2
  #define dataPinY 3
  #define dataPinZ 4
  #define myDigitalRead(pin)  (pin>13 ? bitRead(PINC,pin-14):\
                              pin>7 ? bitRead(PINB,pin-8) :\
                              bitRead(PIND,pin))   
   
  #define myDigitalWrite(pin,level)  (pin>13 ? bitWrite(PORTC,pin-14,level):\
                             pin>7 ? bitWrite(PORTB,pin-8,level) :\ 
                             bitWrite(PORTD,pin,level))
  

 
volatile int bitCount = 0;
volatile  uint32_t dataX=0;
volatile  uint32_t dataY=0;
volatile  uint32_t dataZ=0;

void setup() {
  pinMode(clockPinX,INPUT);
  pinMode(clockPinY,INPUT);
  pinMode(clockPinZ,INPUT);
  pinMode(dataPinX, INPUT);
  pinMode(dataPinY, INPUT);
  pinMode(dataPinZ, INPUT);
 
 
  // Activer l'interruption sur changement d'état
  PCICR |= (1 << PCIE2);  // Activer PCIE2 (groupes de broches de D0 à D7)
  PCMSK2 |= (1 << PCINT20);  // Activer l'interruption sur PCINT20 (broche 4)

 Serial.begin(9600);
 
 delay(1000);
}



void loop() {
  if (bitCount >= 24) {
    Serial.print("Donnée reçue: ");
    Serial.println(dataX, BIN);
    bitCount = 0;
    dataX = 0;
  }
}

// Routine d'interruption Pin Change
ISR(PCINT2_vect) {
  if (myDigitalRead(clockPinX) == HIGH) {  // Si le front est montant
    dataX <<= 1;
    if (myDigitalRead(dataPinX) == HIGH) {
      dataX |= 1;
    }
    bitCount++;
  }

  if (bitCount >= 24) {
    // Vous pouvez désactiver l'interruption ici si nécessaire
  }
}
nano:12
nano:11
nano:10
nano:9
nano:8
nano:7
nano:6
nano:5
nano:4
nano:3
nano:2
nano:GND.2
nano:RESET.2
nano:0
nano:1
nano:13
nano:3.3V
nano:AREF
nano:A0
nano:A1
nano:A2
nano:A3
nano:A4
nano:A5
nano:A6
nano:A7
nano:5V
nano:RESET
nano:GND.1
nano:VIN
nano:12.2
nano:5V.2
nano:13.2
nano:11.2
nano:RESET.3
nano:GND.3
and1:A
and1:B
and1:OUT
ScopeBreakout
scope1:D0
scope1:D1
scope1:D2
scope1:D3
scope1:A3
scope1:A2
scope1:A1
scope1:A0
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
PWMBreakout
pwm1:OUT
PWMBreakout
pwm2:OUT