Du erkennst mit deinem Empfänger lediglich das Signal, also die Pulsfolge mit dem Träger? Wie verhält sich das mit einer Fernbedienung?Was mir auch auffällt, wenn ich die Platine nen paar cm von meinem Empfänger weg halte ist der Empfang schon vorbei.
Kannst du das empfangene Signal mit einem IR Sensor, eventuell im Vergleich mit dem Signal von einer Fernbedinung, mit deinem "Oszi" prüfen?
Zur aufgebauten Hardware kann ich natürlich nichts sagen.
An deinem Code sehe ich soweit nichts mehr, wobei ich den etwas anders lösen würde. Aber bezüglich der Funktion ist es erst mal egal. Ich gehe auch davon aus, dass die Timingwerte vom Timer für die Trägerfrequenz stimmen, nachgerechnet habe ich nicht.