Wenn der Timer-Interrupt ausgeschaltet ist, sollte die entsprechende
Routine auch nicht aufgerufen werden, warum bist Du da mißtrauisch?
Um es dennoch auszutesten, würde ich folgendes vorschlagen:
/// Global folgende zwei Definitionen:
int check = 0;
int control = 0;
/// Dein kritischer Code-Abschnitt:
interrupt aus;
check = 1;
...
check = 0;
interrupt ein;
/// In der Interrupt-Service-Routine:
if(check!=0)
control = check;
Sollte nun jemals die Interrupt-Service-Routine während Deines
kritischen Codeabschnitts laufen, dann kann man dies durch Prüfen der
Variable 'control' feststellen:
Ist ihr Wert 1, dann ist es mindestens einmal passiert,
ist er 0, dann nicht.
Modifikation:
/// In der Interrupt-Service-Routine:
if(check!=0)
control++;
Damit kann man auch die Häufigkeit ermitteln. Um sicher zu gehen:
/// In der Interrupt-Service-Routine:
if(check!=0)
if(control<MAXINT)
control++;
... damit kein Überlauf passieren kann.
"Wird der Interrupt nach dem
Einschalten automatisch ausgeführt, oder geht der verloren?"
Ich denke mal, er geht verloren (Angabe ohne Gewähr!).
Gruß, Michael