mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Was bedeutet dieser C Ausdruck


Autor: Hardware Interrupt (bensen83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute was bedeutet denn diese C Ausdruck?   !=    ist das nicht 
ungleich, wenn ja, was bedeutet das hier:   ^= ???

Helft mir ;-)  Danke

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A ^= B;

ist

A = A XOR B;

wird zum Toggeln benutzt, siehe
http://www.mikrocontroller.net/articles/Bitmanipulation

Autor: Hardware Interrupt (bensen83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, danke, und das !=   ? Ist das ungleich?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> A != B
ist ein Vergleichsoperator und liefert TRUE oder FALSE zurück

> A ^= B
ist eine Kurzschreibweise für
> A = A^B;
und das ist eine kombinatorische Verknüpfung.
Hier speziell die Antivalenz: http://de.wikipedia.org/wiki/XOR-Gatter

Andere Kurzschreibweisen sind z.B.
A += B;   -->   A = A+B;
A -= B;   -->   A = A-B;
A *= B;   -->   A = A*B;
usw. usf.

Das steht aber in jedem brauchbaren C-Buch.
Insbesondere im Standardwerk von K&R Programmieren in C.

Autor: ollibass (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja. während != mehr zu == gehört (ungleich und gleich), gehört ^= mehr 
zu += und -= (also berechnungen, wo ein teil gleich als ergebnis benutzt 
wird)

Autor: Hardware Interrupt (bensen83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Würde dann das ergebnis bei diesem Code hier nicht andauernd hin und Her 
tockeln?   Soll ne Entprellung von nem taster sein:


  if (hatch_alt!=IO_HATCH_IN)
  {
    if (timer_timespan(hatch_seit)>ENTPRELLZEIT)
    {
      hatch_akt=hatch_alt;
        }
  } else
  {
    hatch_alt^=(u08)1;
        hatch_seit=timer_get_timestamp();
  }

Autor: Hardware Interrupt (bensen83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah schon ok, die haben es mit einem low aktiven eingang gemacht denke 
ich.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>... denke ich.
Na dann is gut, denke ich ;-)

Weil (ausser dir) keiner weiß, was timer_timespan und 
timer_get_timestamp machen, und was z.B. IO_HATCH_IN ist, könnte der 
Code alles tun...

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Weil (ausser dir) keiner weiß, was timer_timespan und...


Ich vermute mal, die Fkt nimmt einen Zeitstempel.

Autor: Hardware Interrupt (bensen83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja macht sie, hat sich erledigt, danke leute

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.