Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Der "^"-Operator...

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.07.2004, 17:40 Uhr
Unwissende
...die wirklich Unwissende 8-)


Hab nochmal ne Frage und zwar: Was macht dieser Operator: "^"?

Code:
sbit P1_0 = P1^0;


Wobei P1 folgendermaßen definiert ist:

Code:
sfr P1    = 0x90;


Ich weiß, dass der "^"-Operator ein logisches XOR darstellt, aber irgendwie macht das hier keinen Sinn...denn ich glaube, dass man mit der 1.Anweisung auf den Pin0 (und zwar nur auf diesen!) von Port 1 zugreift, oder genauer gesagt, den 2.Pin des Port 1 der Variable P1_0 zuweist, kann das sein?
Ich meinte, im Internet irgendwas von "absoluten Bitadressen" (???)gelesen zu haben...
Wie kann ich dann auf den 2.Pin des Port1 zugreifen?
Vielleicht mit:

Code:
sbit P1_1 =P1^1;


Naja, war nur so ne Idee......
Oder hab ich etwa falsch gedacht???

Schönes Wochenende an alle
--
__________________________________
Unwissenheit ist vorläufig- Dummheit für immer

Dieser Post wurde am 16.07.2004 um 17:49 Uhr von Unwissende editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.07.2004, 18:01 Uhr
RedEagle



Bei Basic:

Visual Basic:
x = x^2
Dim x=x²


Kann sein, das im code fehler sind (habe seit 2 jahren kein Basic mehr Programmiert)aber ich denke das Prinzip ist klar.

PS.: So ist es bei Basic, kann in C ganz anders sein, ich weiß es nciht

--
Mist, zuspät, war aber sowiso falsch
--
MFG RedEagle

Dieser Post wurde am 16.07.2004 um 18:01 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.07.2004, 22:43 Uhr
ao

(Operator)


@Unwissende:
Du hast mit deiner Vermutung völlig recht, das ^ ist hier nicht das von C gewohnte XOR, sondern eine Spezialität von Keil-C, mit dem ein einzelnes Bit in einem 8-Bit-Register angesprochen wird.

Funktioniert nur bei Mikrocontroller-Typen, die Maschinenbefehle zum Adressieren einzelner Bits haben (der 8051 kann das offenbar), und bei diesen auch nur in bestimmten Adressbereichen, nämlich da, wo die Peripherie-Register eingeblendet sind (vielleicht auch im übrigen internen RAM, aber ganz sicher nicht übers External-Memory-Interface).

Ist allerdings hochgradig un-ANSI und ich weiß das auch nur, weil ich in meinen Anfangsjahren mal Programme für Infineon (damals noch Siemens) C167-Controller geschrieben habe, die hatten auch Bit-Befehle und das wurde auch mit Keil-C übersetzt.

Übrigens steht das alles auch in wunderbarem Englisch und viel besser als ich das hier erklären kann im Compilerhandbuch von Keil. Solltest du mal als Wochenendlektüre mit nach Hause nehmen.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.07.2004, 09:06 Uhr
Unwissende
...die wirklich Unwissende 8-)


Danke, im Moment blick ich grad echt nicht mehr durch, was denn jetzt ANSI-C und was Visual C++ ist, und was von Keil kommt... :
Und das Compiler-Handbuch, nach dem suche ich schon seit geraumer Zeit.
Motivation geht gegen lim ----> -oo Ich will wieder an die FH *nerv*
Okay, gut, ich such jetzt mal nochmal im Internet, ob ich was zu "^" finde...
--
__________________________________
Unwissenheit ist vorläufig- Dummheit für immer
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.07.2004, 09:29 Uhr
virtual
Sexiest Bit alive
(Operator)


ANSI C ist ein Standard, also ein Stück Papier, wo steht, was die Sprache C ist.
Visual C(++) ist der Vesuch, ANSI zu implementieren. Dies ist mehr oder weniger gelungen.
Keil C ist - soweit ich es begriffen habe, ein C Kompiler, der sich offenbar auch nicht an den ANSI Standard hält. Vielliecht hilft ja das hier weiter?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.07.2004, 10:07 Uhr
Unwissende
...die wirklich Unwissende 8-)


Thanks, aber die CD hab ich. Ich glaub, wir haben hier alles, was es von Keil zur Doku gibt ---> versch. Versionen, den Dongle....alles. Leider kennt sich hier glaub keiner so richtig damit aus Und nochmehr nervt mich, dass in der Hilfe von der Keil IDE nicht mal was Schlüsselwort (Datentyp) "sbit" gefunden wird...*wahhh*


Aber was ich doch noch nach langem Suchen gefunden habe:


sbit:
Variable beschreibt ein Bit aus einem bitweise auslesbaren Typ
Bsp:

Code:
sbit msb = zweibyte ^ 15;  // msb ist der Wert des Bit 15 von zweibyte



Also ist das doch so, wie ich vermutet habe, man greift hier direkt auf ein einzelnes Bit zu.


Gut, genug gejammert, weiter gehts....

--
__________________________________
Unwissenheit ist vorläufig- Dummheit für immer
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: