Also ich habs mal mit der Möglichkeit versucht, die emfpangenen 3 Bit in der ISR einfach in ein Byte-Array zu werfen; in jeder ISR wird der Index um 1 erhöht. Da reicht die Zeit dann.
Die Auswertung erfolgt dann, wenn alle Daten vorhanden sind.

Compiler wäre AVR Studio + WinAVR.

Noch ne Frage: Da ich die empfangenen Daten der Übersichtlichkeit halber später noch in nem Struct ablegen will:
Gibts irgend ne Möglichkeit, Variablen mit ner bestimmten Anzahl Bits zu casten, die jetzt kein ganzzahliges Vielfaches von 8 sind?

Also so, dass man z.B. einem Struct-Element, das nur 2 Bit lang ist, die ersten beiden Bits eines Bytes zuweisen kann, ohne dass durch die restlichen 6 Bit andere Elemente des Structs überschrieben werden?
So im Stil von "wordvariable = (ui8_t) bytevariable", nur eben
"struct.element = (ui2_t) bytevariable;"

Wie müsste da der Typedef für ui2_t aussehen?