Forum: Compiler & IDEs Verhalten lokaler variabler in IRQ Routine.


von aufmschlauchstehender (Gast)


Lesenswert?

Hallo,
stehe gerade auf dem Schlauch.
1
//Timer-IRQ
2
ISR(TIMER0_OVF)
3
{
4
  uint8_t tick;
5
  // 1,2 MHz / 256 = 4,687 => 5000 Durchgänge/s Prescaler 1024 => 5 Durchgänge/s
6
  if(++tick > 5)
7
  {
8
    timertick_s++;
9
    tick=0;
10
  }
11
}
Es geht einfach darum eine sehr ungenaue Sekunde mit einem Tiny13 
darzustellen.
Hintergrund ist eine Fensteransteuerung die die Fenster schließen soll 
wenn's regnet, also Sensor wird nass Tiny schaltet für ca. 10-15s Motor 
ein.
Kann ich jetzt in der ISR die lokale Variable stehen lassen oder muß die 
auch global und volatile wie timertick_s deklariert sein ?
Danke für die Aufklärung.

von Peter D. (peda)


Lesenswert?

static ist das Zauberwort.

Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.