Forum: Mikrocontroller und Digitale Elektronik Bedeutung von "^"


von Tom (Gast)


Lesenswert?

Hallo,

bin absoluter Neuling in der Programmierung von Mikrocontrollern in C.
Ich versuche mich aber gerade einzuarbeiten.
Allerdings habe ich ein Problem mit einer x-or Verknüpfung.

P6OUT   ^=   0x01;

Was bewirkt diese Festlegung bzw was bedeutet sie?

Kann mir da jemand weiterhelfen.
Sorry, aber ich bin wie gesagt neu auf dem Gebiet!
Danke schon mal

Gruß Tom

[Moderator's note: Subject sinnvoll ergänzt]

von Christian D. (burning_legend)


Lesenswert?

Ich würde dir ein Grundlagenbuch zu C zu Herzen legen.

Dennoch:
P6OUT ^= 0x01;
entspricht:
P6OUT = P6OUT ^ 0x01;

Das heißt das letzte Bit wird getoggled.

von Tom (Gast)


Lesenswert?

Hallo Christian,

ich werde deinen Rat befolgen. Bis jetzt hab ich nur ein Buch über 
Mikrocontroller, werde mir aber noch eins zur C-Programmierung zulegen.
Danke für deine Hilfe

Tom

von mr. mo (Gast)


Lesenswert?

Ich kann dir das Open Book von galilieo computing ans Herz legen. Kann 
man sich auch runterladen und lässt sich gut als Nachschlagewerk für 
zwischendurch missbrauchen.

http://openbook.galileocomputing.de/c_von_a_bis_z/

von Christian D. (burning_legend)


Lesenswert?

Zum Lernen der Grundlagen in C würde ich einfach das Buch hier mal 
durchmachen: http://openbook.galileocomputing.de/c_von_a_bis_z/

Aber darf ich Fragen welchen Controller du benutzt ?
Sieht nach MSP430 aus. Ich bin der Meinung, dass der für Anfänger etwas 
schlecht dokumentiert ist.


Gruß,
Christian

Edit: Too late :D

von Udo S. (urschmitt)


Lesenswert?

Wenn sowohl die Programmierung, die Sprache C und Microcontroller neu 
für dich sind, würde ich dir empfehlen erst mal einen C Compiler und 
Debugger für den PC zu installieren und dort C zu üben und vor allem dir 
im Debugger anschauen was passiert.
Alles neu mit den begrenzten Möglichkeiten auf dem µC ist schwierig.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Christian D. schrieb:
> Ich bin der Meinung, dass der für Anfänger etwas
> schlecht dokumentiert ist.

Ist er nicht, die Dokumentation ist nur anders strukturiert als bei den 
AVRs. Und dank von-Neumann-Architektur spart man sich den einen oder 
anderen Fallstrick in C, und das Fehlen der "Fuses" macht einem die 
Sache auch einfacher.

von Christian D. (burning_legend)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Christian D. schrieb:
>> Ich bin der Meinung, dass der für Anfänger etwas
>> schlecht dokumentiert ist.
>
> Ist er nicht, die Dokumentation ist nur anders strukturiert als bei den
> AVRs. Und dank von-Neumann-Architektur spart man sich den einen oder
> anderen Fallstrick in C, und das Fehlen der "Fuses" macht einem die
> Sache auch einfacher.

Okay, da magst du Recht haben. Ist nur eine Umgewöhnung, wenn man sich 
vorher an die AVR Docs gewöhnt hat. Nicht abzustreiten ist aber, dass es 
im allgemeinen und insbesondere hier im Forum mehr zum Thema AVR gibt 
und wsl. auch mehr Leute helfen können, falls mal ein Problem auftritt.

von Thomas E. (thomase)


Lesenswert?

Tom schrieb:
> Was bewirkt diese Festlegung bzw was bedeutet sie?
Das ist keine Festlegung, sondern ein Operator.
Und zwar zwei Operatoren "^" und "=", die zusammengesetzt einen 
"compound assignment operator" bilden: "^=".
"^" ist der bitweise Exklusiv ODER Operator und "=" der 
Zuweisungsoperator.

Gewöhn' dir solche Fachbegriffe an. Mit Umschreibungen oder 
Deutungsversuchen redet man ständig aneinander vorbei und findet nichts 
im Stichwortverzeichnis seines Lehrbuchs oder bei gugel.

Aber das Buch hast du ja noch vor dir.

mfg.

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.