Ich hab dass Problem zuruck fuhren konnen zum folgendes:

Dies ist mein program, etwas kryptisch

  • //glabalen variabele
    volatile X;

    //funktion A
    fA(void){
    read X;
    mach_etwas();
    }

    //interrup1
    SIGNAL_TIMER1(void){
    fA();
    }

    //interrup2
    SIGNAL_TIMER2(void){
    X=200/eine_variabele; //<<---fails
    Andere_Funktion(X);
    }

    main(){
    while(1);
    }


Interrupt2 dividiert und die resultatwert geht in X.
Wenn die funktion 'Andere_Funktion(X)' ausgefuhrt wird, klapt alles.
Wenn die funktion 'Andere_Funktion(X)' NICHT ausgefuhrt wird, dann wird die resultatwert vom dividierung NICHT in X plaziert.

Wass ist hier eigentlich los, oder wie kann ich dafur sorgen dass die dividierungwert ordentlich in X plaziert wird ohne diesen trick?

Gruss

Henk