Hallo,

schreib mal in der main
Code:
while (1){
asm("nop");
}
oder setz die Optimierung auf -O0

BTW Variablen die in ISR's benutzt werden sollten imm er volatile declariert werden.
volatile fifo_t out_fifo;

Gruß

Jens