Hallo, ich habe ein Sensor, der liefert mir einen Wert bis 0xFFFF und dann fängt er wieder von 0 an. Ich möchte diesen Überlauf abfangen, dabei wird eine Variable jedesmal inkrementiert "nur wenn die Bedingung erreicht ist". Mein stück Code sieht so aus: if (SensValue = 0xFFFF) { tmp +=1; } Meine Problem ist es jetzt, dass dieser Inkrement ständig hochgezählt wird, d.h. auch wenn mein SensValue ungleich oxFFFF. Danke für eure Hilfe
Hi Hintergrund ist, daß
1 | (SensValue = 0xFFFF) |
die Überprüfung ist, ob die Zuweisung (SensValue einen Wert geben) funktioniert hat. Das müsste IMMER wahr sein (ob ein =0 auch wahr ist, müsste ausprobiert werden). Bei == ist Das explizit eine Prüfung auf Gleichheit, ohne Zuweisung des Wert. Mit == wirst Du hier also glücklich werden. MfG
Fabi schrieb: > Ich möchte diesen Überlauf abfangen, Das macht man bei monoton steigenden Werten mit:
1 | if(SensValue<LastSensValue) |
2 | { |
3 | tmp++; |
4 | } |
5 | LastSensValue=SensValue; |
Fabi schrieb: > if (SensValue = 0xFFFF) > ... > > Meine Problem ist es jetzt, dass dieser Inkrement ständig hochgezählt > wird, d.h. auch wenn mein SensValue ungleich oxFFFF. Je nach Programmiersprache kann das durchaus in Ordnung sein. In C (+Derivaten) gibt es denn feinen Unterschied zwischen "=" und "==".
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.