If-Verzweigung scheitert?!

noiasca:
du hast == mit = verwechselt!

if(enabled == false){Serial.println("disabled");}

Danke!
Wald... Bäume... argh

oder kurz:

if(enabled) Serial.println(F("Killswitch auth. enabled"));
if(!enabled) Serial.println(F("Killswitch auth. denied"));

Und gerade weils da hakte wollt ich extra möglichst einfach/fehlersicher herangehen. Aber bei der Abfolge true/false ist dann auch klar, dass er beim printf von true ausgeht und trotzdem anschließend nicht reinspringt.

combie:
Tipp:
Damit einen der Kompiler bei solchen Fehlern anschreit, kann man die Argumente vertauschen.

if(enabled == false) // ist wohl so gemeint und damit richtig
if(!enabled) // macht das gleiche
if(false == enabled) // richtig, Parameterumkehr erlaubt
if(enabled = false) // kein Vergleich sondern Zuweisung (unbeabsichtigt)
if(false = enabled) // der Kompiler beschwert sich bitterlich

Also, Konstante nach links!
So kann man diesen = vs. == Tippfehler viel leichter identifizieren.
Das sind recht schwer zu findende Fehler, da das Auge den Code beim lesen repariert und das fehlende = gerne hinzu dichtet.

Es ist für manche im ersten Augenblick ungewohnt die Konstante links zu setzen, oder so vorzufinden, aber mit ein bisschen Übung geht das problemlos.

Danke, guter Tipp. Zwar nicht so intuitiv zu lesen, aber erscheint recht sinnig.