UART/TUTORIAL/EINSTEIGERFRAGE

Gast #1048281
Lesenswert?

Guten Tag,

ich bin momentan dabei, das Programmieren von AVRs mit Assembler zu 
lernen und nutze dazu das Tutorial.

Beim Kapitel UART bin ich auf ein Problem gestoßen und weiß nicht mehr 
weiter.

Zum Problem:

    ldi     temp, (1<<URSEL)|(3<<UCSZ0)
    out     UCSRC, temp

Was machen die in Klammern gesetzen Operatoren, laut vorhergegangenen 
Erklärungen im Tutorial bedeutet die Zeile (1<<URSEL):

   1*2^URSEL

Aber was bewirkt das nun ?

Danke schonmal für Eure Hilfe !

Grüße und nen schönes Wochenende

Stefan
Gast #1048286
Lesenswert?

Der "<<" bzw ">>" Operator schiebt die Bits in einem Wert jeweils nach 
Links bzw. nach Rechts. Das entspricht einer Multiplikation pro 
Schiebeoperation.

Für dich an dieser Stelle wichtiger ist allerdings die binäre 
Betrachtung. In dem Register schaltet nämlich jedes Bit etwas ein oder 
aus bzw. konfiguriert im Zusammenhang mit anderen Bits etwas.

> (1<<URSEL)|(3<<UCSZ0)

Das ist die übliche Weise, in der man ein Bit an einer bestimmten Stelle 
in einem Byte ( oder Wort) setzt. URSEL und UCSZ0 sind hier nur 
Konstanten, welche die Position des Bits mit einem "besser" merkbaren 
Namen versehen.


Welche Funktion die einzelnen Bits haben steht im Tutorial und im 
Datenblatt des Controllers.
Gast #1048289
Lesenswert?

Hi

'<<' ist ein Shiftoperator, vergleichbar mit 'shl'. Im Prinzip ist deine 
Beschreibung richtig,aber in dem Zusammenhang nicht sehr hilfreich, da 
es auf die Bitposition und nicht auf den Wert ankommt. Du sooltest das 
besser binär betrachten.

Beispiel: 0b00000001 << 3 = 0b00001000

MfG Spess
Gast #1048294
Lesenswert?

Achso, das heißt, wenn ich die Formel a*2^b binär betrachte, bedeutet 
die nichts weiter, dass b angibt, um wieviele binärstellen a nach links 
bzw. rechts geschoben wird  !?

Hab ich das nun richtig verstanden ?

Grüße
Stefan

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren