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.