Forum: Mikrocontroller und Digitale Elektronik Sensor Wert abfangen


von Fabi (Gast)


Lesenswert?

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

von visitor (Gast)


Lesenswert?

Pronier es mal mit == in der IF Abfrafe

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

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

von MaWin (Gast)


Lesenswert?

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;

von Wolfgang (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.