Das ist ja recht viel Code... so ohne weiteres seh ich da nicht, ob er das machst, was du von ihm willst das er er tun soll...
Nur noch eins: bit_is_clear ist warscheinlich ein Prädikat, liefert also 0, falls die Bedingung nicht erfüllt ist (falls PINx == HIGH) und irgendein Wert ungleich 0, falls die Bedingung erfüllt ist (Pinx == LOW).
In C sollte man bool'sche Werte immer mit if (wert) bzw. if(!wert) abtesten.,
was fleichbedeutend ist mit if (0 != wert) bzw if (0 == wert)
Dazu steht auch was im Wiki, bei "Fallstricke der C-Programmierung"![]()
Disclaimer: none. Sue me.
Lesezeichen