Problem mit shiftOut Arduino Leonardo

Ich habe das Problem, dass, wenn ich vom Arduino Uno auf den Leonardo über shiftOut Daten sende, kommt beim Leonardo immer nur eine 255 an, das heißt ja, dass der Datenpin immer auf HIGH steht.
Als ich einen Arduino Uno als Empfänger genommen habe, klappte alles.

void setup() {
  pinMode(2, OUTPUT); // data pin
  pinMode(3, OUTPUT); // clock pin
}

void loop() {
  delay(10);
  shiftOut(2, 3, MSBFIRST, (byte)70); // B01000110
}

(Sender (Arduino Uno))

volatile byte data;
volatile byte bitsRemaining = 7;

void setup() {
  pinMode(2, INPUT); // clock pin
  pinMode(8, INPUT); // data pin
  
  attachInterrupt(0, bitAvailable, RISING);
  Serial.begin(9600);
}

void loop() {
  if (bitsRemaining >= 8) {
    Serial.write(data);
    bitsRemaining = 7;
  }
}

void bitAvailable() {
  data = (data << 1) | (PINB & 1);
  bitsRemaining--;
}

(Empfänger(Arduino Leonardo))
(www.simsso.de)
Ich habe die Nummer des Interrupts beim Empfänger schon geändert, könnte das Problem vielleicht an dem Register PINB liegen? Es muss ja irgendetwas sein, was am Leonardo anders ist als beim Uno, denn da funktionierte ja alles.[/code]

Int0 ist auf dem Leonardo Pin3

Übrigens, berechne mal wie lange die ISR läuft, und wieviel Zeit zwischen den Bits bleibt...

Warum verwendest du kein I2C?

Das mit den Interrupts habe ich ja wie gesagt schon geändert. Sonst würden ja überhaupt keine Daten ankommen.

könnte das Problem vielleicht an dem Register PINB liegen?

Nein!!
PINB ist völlig in Ordnung!

data = (data << 1) | (PINB & 1);

Dir ist schon klar, dass PB0 gar nicht herausgeführt ist?
Und Pin8 auf PB4 liegt?

http://pighixxx.com/leonardopdf.pdf

data = (data << 1) | (PINB & 1);

PB0.png

pb4.png

Ich sehe da (wie jetzt auch du combie) PB4 für Pin 8.

combie: Dir ist schon klar, dass PB0 gar nicht herausgeführt ist?

Na sicher ist der herausgeführt, aber nur an den ICSP Header.

Ich glaube es jetzt.

Na sicher ist der herausgeführt, aber nur an den ICSP Header.

No! Kein SS am ICSP. Noch nie gewesen.

Stimmt, habe das mit der Clock verwechselt.