Die Interaktion zwischen Interruptroutine und Hauptprogramm robust zu
bekommen, ist nicht trivial. Das volatile nannte Jim schon. Reicht
leider nicht, du brauchst auch noch nen atomaren Datentyp (z.B. char
oder uint8_t).
Und dann muß das Protokoll auch noch korrekt sein - deines ist es
nicht. Stell dir vor, t ist 0 und kurz nach dem Test "while(t==1)" und
noch vor dem "t=0" kommt der Interrupt, t wird 1 und von main sofort
wieder auf 0 gesetzt ohne jemals gemerkt zu haben, dass es kurz auf 1
war.