Weiss nicht. Eins ist aber auf jeden Fall gefährlich:
Deine Sub werken ziemlich lange, d.h. du drückst die Taste ziemlich sicher gerade dann, wenn er in der Sub ist.
Raufzählen tut er aber trotzdem ( weil interrupt)
d.h. er kann 3 überschreiten, ohne dass du es merkst, also wird T nicht auf 1 gesetzt und es spielt sich nix mehr ab.

Besser auf prog 3 zu verzichten, und zu schreiben:
Code:
Int0set:
if t < 3 then 
      T = T + 1
else 
     T = 1 
endif 
'''''''''''   Waitms 50    '(in einer Interrupt-Routine ist das "pfui"  ) 
Return