Hallo adri,
dein Programm bleibt im Timer0 Interrupt hängen.
Die Funktions-Callbacks werden im Timer0 Interrupt eingehängt und die IR Übertragung läuft im Timer1 Interrupt ab. Beide Interrupts sind gleich priorisiert und können sich nicht gegeneinander unterbrechen.
Wenn also in der Funktion tx_fu() (die im Timer0 Interrupt abläuft) die RAW Übertragung gestartet wird bleibt der Ablauf in der Funktion RAW_Stop() hängen, die darauf wartet, dass die IR Übertragung abgeschlossen wird. Da der Timer1 Interrupt dadurch nicht ausgeführt wird die IR Übertragung nie abgeschlossen.
Es würde funktionieren, wenn der Timer1 Interrupt als FIQ ausgeführt wird. Allerdings stürzt dann Boop nach einiger Zeit auch ab. Und da ich kein JTAG Interface zum Debuggen habe, hab ich diese Änderung mal auf unbestimmte Zeit verschoben (würde nämlich auch ein Problem mit dem xbox FB code lösen).
Gruß
Telekatz