Guck mal da: da steht's:

Fallstricke bei der C-Programmierung#Nicht-atomarer Code

Ausserdem sind die in den ISRs angefassten Variablen flüchtig.
Dementsprechend gehören die Dinger als volatile qualifiziert. Such mal danach, und du wirst überschüttet