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 |