Könntest du mir vielleicht freundlicherweise trotzdem mal deinen Ansatz schicken ...
Nee, das ist noch viel zu stümperlich und funktioniert auch gar nicht.

Meine Idee für die Empfangsseite war:
1. Aus den empfangenen Startbytes ($F0) die Manchester-Bitlänge errechnen. Wenn ich z.B. dort die 0- oder 1-Gesamtlänge messe, dann müßte die das 4-fache der Bitlänge sein (?).
2. Nach dem letzten Startbyte würden ja die Daten beginnen und ich müßte einen Timer starten.
3. Die gewünschte Flanke würde ich dann bei der halben Bitlänge erwarten, müßte aber natürlich, um sie nicht zu verpassen DAVOR, also wohl etwa ab der Dauer einer viertel Bitlänge auf die Flanke warten.
4. Nach dem Startbyte müßte man also das erste Mal nach 1/4 Bitlänge auf die erste Flanke warten, für alle weiteren Bits nach einer weiteren ganzen Bitlänge.
5. Das ganze System müßte sich immer wieder neu synchronisieren an den Startbytes, ich habe aber auch gelesen und kann mir das gut vorstellen, dass anhand aller empfangener Flanken auch eine fortlaufende Synchronisierung bei längeren Übertragungen möglich ist. Man müßte dann bei laufendem Empfang die Aufrufzeit für die ISR (= Bitlänge), die die Flanken detektiert, variabel gestalten und in gewissen Grenzen vom Abstand der empfangenen Flanken (= 1/2 Bitlänge) abhängig machen.

Vielleicht kriegst du das ja hin bzw. gibt uns jemand hier ein paar Hinweise, wie man's machen kann.

Gruß Dirk