-
-
Neuer Benutzer
Öfters hier
@PicNick:
Ähmm, so ganz hab ichs noch nich verstanden. Erlaube mir mal zu rekapitulieren (Wissen ist noch frisch von gestern)....
Bitmaske = definierte Abfolge von 0 u. 1 in einem Byte, also 8 Bits.
Zweck = durch And/or/xor auf andere Bytes wirken lassen um Bits im Zielbyte gleichzeitig zu verändern.
z.B.:
ldi r16,(1<<PWM2)
lädt die Bitmaske PWM2 in Register r16 (was heisst das "1<<"?).
Was macht aber:
ldi r16,(1<<PWM2)|(1<<COM21)|(1<<CS20)
?
Ich vermute mal, das kombiniert die Bitmasken miteinander ( | = oder?), sodass im r16 alle bits von PWM2, COM21 und CS20 aktiviert sind?
Zitat:
---------
Dadurch kann man mit dem gleichen Symbol
SBIC ioreg, SYMBOLNAME als Bitnummer
LDI register, (1<<SYMBOLNAME) als BitMaske
arbeiten. (Das shiften macht eh der Compiler beim Übersetzen, der Maschinencode sieht dann ja eh' aus (in C und im Assembler) wie von dir
beschrieben.
Logo ? Anderenfalls würde man zwei verschiedene Symbole brauchen.
SYM_BITNR = 4 und
SYM_BITMSK = 0b00010000
-------
Ähh, das check ich noch nich
SBIC ioreg, SYMBOLNAME als Bitnummer
So definiert man ne Bitmaske? SBIC ist mir bis heute (also in den letzten paar stunden, lol) noch nich untergekommen
Andernfalls 2 verschiedene Symbole? ÄHHH, verstehs nich, sorry.
Also momentan is meine Vorstellung von PWM2 ect. so...:
Da gibts ne Tabelle im Assembler, wo er beim assemblieren als PWM2 ne Bitmaske einsetzt. Quasi zur besseren lesbarkeit des Codes.
Hast du vielleicht nen Link zu nem Tutorial, was das beschreibt?
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen