Forum: Mikrocontroller und Digitale Elektronik Sensor Wert abfangen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Fabi (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht lesenswert
Pronier es mal mit == in der IF Abfrafe

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


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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 "==".

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.