mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik |= unterschied =


Autor: Frischling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beschäftige mich ganz neu mit der uC Thematik und habe eine Frage 
bezüglich dem Unterschied von:
 |=
 =
z.B.

PORTH.DIRCLR = PIN6_bm;
PORTH.DIRCLR |= PIN6_bm;


Werden beim  |= alle anderen Bits (die nicht im Anschluss kommen) so 
gelassen und bei = alle auf 1 gesetzt und der Rest auf 0.

Kann mir jemand das nochmal erklären?- Am besten mit Register auf der 
Bit- Ebene

Autor: Sven H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
= bedeutet "gleich"
|= bedeutet "oder gleich"


a = 0001 wird immer zu 0001
a = 1100 wird immer zu 1100

b |= 0001 sorgt dafür das das letzte Bit gesetzt wird.
b |= 1111 sorgt dafür das alle Bits gesetzt werden.

c &= ~0001 sorgt dafür, dass das letzte Bit gelöscht wird.
c &= ~1111 würde c auf 0 setzen

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
= ist eine einfach Zuweisung im Sinne

a = 3;
b = 4;

a hat jetzt den Wert 3 und b den Wert 4

|= ist eine Kurzschreibweise von

a = a | 4;

Ich kann ich auch schreiben

a |= 4;

(Programmier sind schreibfaul)

das | Zeichen an sich führt ein logisches bitweises ODER auf die beiden 
Operanden durch.

a = 0b0011;
b = 0b1100;

a = a | b; // a ist jetzt 0b1111

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tip: Man sollte sich mit den C Grundlagen beschäftigen, wenn man was in 
c Programieren will. Hör auf fremden Code zu lesen, sondern lies erstmal 
ein Tutorial und versuch selber kleine Programme zu schreiben.

Autor: Brummbär (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ich bin auch zu faul zum suchen. Kann mir jemand erklären was if 
beseitet?

Autor: Karl-heinz Strunk (cletus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Och Mensch, regt euch doch nicht künstlich auf.

Schon mal nach |= bei Google gesucht bevor hier rumgekotzt wird?

Also.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, natürlich nicht.


Aber wenn ich anfange mit C hätte ich nach C Tutorial oder so gesucht!

Autor: YS-500 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C ist der 3. Buchstabe im Alphabet, aber da sieht mann wieder daß manche 
Leute nicht bis 3 zählen können.

Autor: Gregor B. (gregor54321)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das lässt sich im Tutorial unter 
http://www.mikrocontroller.net/articles/AVR-GCC-Tu... 
nachlesen. Mir hat dies in den Anfängen auch gut geholfen!

Wer nix sinnvolles zu einem Thema beisteuern kann, sollte auch nix 
beisteuern! Wer nicht schreiben will wie "if" funktioniert, sollte 
einfach gar nichts schreiben. Laberthreads stehen nämlich da: 
http://www.mikrocontroller.net/forum/offtopic.

Autor: Stefan C. (jaecko)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl-heinz Strunk wrote:
> Och Mensch, regt euch doch nicht künstlich auf.
>
> Schon mal nach |= bei Google gesucht bevor hier rumgekotzt wird?

Für die, die's noch nicht versucht haben: Bei mir kommt:
"Es wurden keine mit Ihrer Suchanfrage - |= - übereinstimmenden 
Dokumente gefunden."

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan C. wrote:

> Für die, die's noch nicht versucht haben: Bei mir kommt:
> "Es wurden keine mit Ihrer Suchanfrage - |= - übereinstimmenden
> Dokumente gefunden."

Google kann meines Wissens (noch) nicht nach Sonderzeichen suchen, also 
nur nach alphanummerischen Zeichen.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nebenbei zu Google und Sourcecode; es gibt da ein kleines Tool 
(natürlich Beta wie fast alles von Google) um nach Sourcecode zu suchen:
http://www.google.com/codesearch

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frischling wrote:
> Beschäftige mich ganz neu mit der uC Thematik und habe eine Frage
> bezüglich dem Unterschied von:
>  |=
>  =
> z.B.
>
> PORTH.DIRCLR = PIN6_bm;
> PORTH.DIRCLR |= PIN6_bm;

Es gibt keinen Unterschied in diesem Falle. Ich denke mal es handelt 
sich um den neuen ATxmega.
Das Register wird immer als Null gelesen.

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.