mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik If Bedingung negieren klappt nicht.


Autor: Phillip Hommel (philharmony)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte bei ungleichheit von zwei Variablen etwas tun.
if(! (chan_b == chan_b_old));
{ uart_send(chan_b);
  chan_b_old = chan_b;
  uart_send(chan_b_old); //zur Kontrolle
}
Allerdings funktioniert das nicht, er sendet ständig, wobei sie nach 
einmaligem Senden doch wieder gleich sein sollten. Es werden auch zwei 
komplett identische Werte gesendet...
Habe auch schon
if(chan_b != chan_b_old)
versucht, ging auch nicht...
Hilfe?

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist der ; richtig an ende der "if" zeile ?

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zur kontrolle mache ich if else

Autor: Richard Scheffenegger (rscheff)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Absehen von dem gerade beschriebenen Fehler, finde ich !(x == y) nicht 
so ästetisch wie (x != y). Je nach compileroptionen ist letzteres auch 
weniger assembler code (1-3 befehle).

Autor: Phillip Hommel (philharmony)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab die selben Zeilen nochmal neu getippt, jetzt gehts!?!? Glaub mein 
Rechner ist müde...
Danke für die Hilfe!

Autor: Karel Marsalek (marsalek)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas R. hat es richtig getippt. Das ; am Ende der if-Zeile bedeutet, 
dass die Bedingung sich nur auf ein leeres Befehl bezieht. Danach wird 
der Rest immer durchgeführt.

Karel

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.