Forum: Compiler & IDEs Fehlermeldung + Zustandsvariable


von Sonja (Gast)


Lesenswert?

Hi,
ich steh grad etwas auf dem Schlauch und könnte einen kleinen Hinweis 
gut gebrauchen.

Ich habe eine Funktion, die ich alle 150ms aufrufe und in der ich eine 
Fehlervariable auslese. Die Funktions stößt dann die Anzeige an:

{

1.Fehlervariable auslesen
2.Auswerten und mit der externen AlarmZustandsvariable vergleichen
3.Ausgeben, ob nun Alarm1 in rot ODER Alarm1 in weiß oder... angezeigt 
wird

}
...nach 150ms wird die Funktion erneut aufgerufen und die Anzeige je 
nach Zustand gewechselt.

Nun habe ich 3 verschiedene Alarmzustände. Jeder Alarmzustand wird 
jeweils im Wechsel rotem und mit weißem Hintergrund angezeigt.
Dies möchte ich durch eine externe Variable vom Typ unsigned char 
steuern.

Fehlervariable = 1 >> Alarm1 (blinkend)
Fehlervariable = 2 >> Alarm2 (blinkend)
Fehlervariable = 3 >> Alarm1 + Alarm2 (blinkend und im Wechsel)
Fehlervariable > 3 >> Alarm3

Ich hab gedacht ich mach die Auswertung mit einer if...if else... 
Schleife.
Komme nur nicht drauf wie ich die externe Variable dafür belegen soll...

von Wolfgang Horn (Gast)


Lesenswert?

Hi, Sonja,

entweder habe ich jetzt beim Lesen einen selektiven Black Out, oder ich 
fühle mich zu Recht an einen solchen erinnert, wie er Dir unterlaufen 
sein könnte.

> Nun habe ich 3 verschiedene Alarmzustände. Jeder Alarmzustand wird
> jeweils im Wechsel rotem und mit weißem Hintergrund angezeigt.
> Dies möchte ich durch eine externe Variable vom Typ unsigned char
> steuern.
>
> Fehlervariable = 1 >> Alarm1 (blinkend)
> Fehlervariable = 2 >> Alarm2 (blinkend)
> Fehlervariable = 3 >> Alarm1 + Alarm2 (blinkend und im Wechsel)
> Fehlervariable > 3 >> Alarm3

enum Alarme
{
  Alarm1,
  Alarm2,
  Alarm3
};

Fehlervariable = BV(Alarm1) | BV(Alarm2) | BV(Alarm3);

Alternative: Bitfeld.


Ciao
Wolfgang Horn

P.S.: Etwas "Management mentaler Prozesse": Wie funktioniert ein 
"selektiver Black Out"? Könnte die Betrachtung dieses "mentalen 
Prozesses" diese Ereignisse minimieren?
Bei mir passiert er eher, wenn bei der Fehlersuche das Gefühl "das kann 
es nicht sein" aufkommt und ich eine potenzielle Fehlerursache gleich 
abhake, um nur noch woanders zu suchen.
Also ganz im Gegenteil zu dieser Denkweise:
"Wenn man das Unmögliche ausgeschlossen hat und das Unwahrscheinliche 
übrig bleibt, muss das Unwahrscheinliche die Wahrheit sein." (Das 
Sherlock Holm’sche Ausschlußverfahren)

W.H.

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.