Ob Shiftin der richtige Befehl dafür ist weiss ich nicht. Die Codelänge ist ja mehr oder weniger unbekannt. Mal schauen, was weitere Tests bringen.

Zum ADC. Der TSOP liefert dir ja nur H und L. Damit bekommst du vom ADC ja nur Werte im Bereich um 0 und Werte im Bereich um 256 oder 1024 (ja nach Auflösung des ADC). Das entspricht ja auch nur 0 oder 1 wie du es sonst an einem Pin hättest.
Wichtig ist ja aber die Zeit des Signals.
Einen echten DAC hat ein AVR ja auch nicht, aber auch damit könntest du ja nur 0 und 1 erzeugen wenn du was senden willst. Die IR-Diode kann ja nur an oder aus sein. Auch hier fehlt die Zeit bzw Signallänge.