PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu einem Operator



jagdfalke
26.11.2005, 17:21
Hi,
in dem Tutorial, das ich gerade über AVR-C Programmierung lese wird zum Einschalten des TX das hier gemacht:


UCSRB |= (1<<TXEN)


Die Schreibweise

UCSRB = 0x08;
verstehe ich ja mittlerweile, aber was das da oben soll, check ich nicht. Laut Tut. heißt das
"Bit-Verschiebung nach links", darunter kann ich mir aber nichts vorstellen.
Kann mir das bitte jemand erklären?

mfg
jagdfalke

izaseba
26.11.2005, 17:34
Grundlagen der C Programmierung:


UCSRB |= (1<<TXEN)

bedeutet soviel wie :


UCSRB = UCSRB | (1<<TXEN)

also Register UCSRB wird mit (1<<TXEN) "verodert"

irgendwo in der headerdatei iom32.h(Du hast doch Mega32, oder?) findest Du sowas
#define TXEN 3

hiermit wird TXEN gleich 3 gesetzt und (1<<3) heißt dann,
setze eine eins und verschiebe sie um 3 Stellen nach links etwa so 00000100.
Ich hoffe, das es stimmt, und klar ist.

Gruß Sebastian

linux_80
26.11.2005, 17:59
Hallo,
um 3 Bit wird nach links verschoben, also Binär 00001000
das ergibt wie oben schon angegeben $08.


Edit:
dann noch was, das Oder | bedeutet, das alle anderen Bits im Register so bleiben, und nur das eine TXEN geändert wird.

jagdfalke
26.11.2005, 18:10
Aso, also muss ich nicht immer schaun, wie ist das Bit gesetzt und es dann wieder neu setzen nur weil ich eines ändern will.
Danke !

mfg
jagdfalke