Forum: Mikrocontroller und Digitale Elektronik Sicherheitsabschaltung


von sepp (Gast)


Lesenswert?

Hallo

Ich sitze momentan an einer Sicherheitsabschaltung für meine Anwendung, 
die wie folgt arbeiten soll.

Ich zähle in einem Timerinterrupt eine Variable hoch, damit ich immer 
gleich Zeitabstände hab. dann sage ich, solange das ereignis z besteht 
und die Variable kleiner x ist soll der Controller dies tun, und wenn 
sie größer x ist soll er etwas anderes tun und die Variable 
zurücksetzen.
dieser wechsel von "tun" und "anderes tun" soll jedoch maximal 3mal 
stattfinden. wenn dann immer noch z da ist soll das System bei "tun" 
verharren.
1
Timerisr()
2
{
3
   ++Zaehler;
4
   if (Zaehler<=x)
5
   {operation=1;}
6
   else
7
   {operation=0;}
8
9
   if (Zaehler==y&&z=1)
10
   {
11
      Zaehler=0;
12
      ++i;
13
      if (i>=3)
14
      {
15
         while(1)
16
         {operation=1;}
17
      }
18
   }
19
}

so ungefähr hab ich mir das gedacht, aber es läuft noch nicht wirklich, 
das Programm bleibt nicht in der whileschleife.

könnte es sein, dass ich dann in der whileschleife die Interrupts 
disablen muss?

von Johannes M. (johnny-m)


Lesenswert?

> if (Zaehler==y&&z=1)
Da fehlt ein "="...

Außerdem: Eine Endlosschleife in einer ISR? Das sollte auch anders 
gehen.

von sepp (Gast)


Lesenswert?

> Da fehlt ein "="...

hab ich dann auch gesehen, war aber nicht der Fehler

>Außerdem: Eine Endlosschleife in einer ISR? Das sollte auch anders
>gehen.

Habs einfach ins main geschmissen, jetzt funzts

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.