ISR mit Speicherfunktionalität

Gast #2234617
Lesenswert?

Hallo da draußen,

ich stehe vor einem Problem.

Ich führe in meinem Programm eine Timer-ISR aus. In dieser soll eine 
Zahl berechnet werden. Diese Zahl soll aber dann auch im weiteren 
Verlauf für spätere Funktionen zu Verfügung stehen?

Wie muss ich das umsetzen?

Es will nichts klappen. Scheinbar kann ich die ISR nich dahingehend 
anpassen, dass ich einen Zeiger übergeben könnte. Auch wenn ich die 
Variable global definiere steht der Inhalt irgendwie nicht zur 
Verfügung?

Was könnte ich denn noch anstellen um mein Problem C-technisch zu lösen?

Quellcode:


uint8_t zahl=0;

ISR(TCC0_OVF_vect){

    if (zahl >= 9)
    {
      zahl = -1;
    }
    zahl++;
}

int main (void)
{

   //INTERRUPT-Config

  while(1)
{
  if (zahl& 0x08 )
        PORTC.OUT |= (1<<PIN1); //PC0 wird auf High gesetzt
        else
        PORTC.OUT &= ~(1<<PIN1); //PC0 wird auf Low gesetzt
}
}


Danke für euren Rat.

Beste Grüße.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren