schwer zu sagen...

Steht signal vielleicht auf FALSE?

In timGetDifNUp() und anderen Stellen versuchst du Betrag zu berechnen. Nehmen wir mal an, wir wollen den Betrag für 8-Bit berechnen.

a = 0x80 = -128 und b = 0, es ist also a < b

if (a < b) c = b-a

=> c = 0x80 = -128 < 0

Analog bei breiteren Typen