www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Was bedeutet << in AVR-ASM?Ein Schift kann es ja nicht sein.


Autor: Freak5 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Code:
ldi r16, (1<<TWINT)|(1<<TWSTA)|
(1<<TWEN)
out TWCR, r16

Was bedeutet das eigentlich? Heist dass, dass TWINT, TWSTA usw. in r16
auf 1 gesetzt werden, wenn ja, was bedeuten die "<<" operatoren
genau? Bedeutet | in diesem Fall "Und"?

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Studio - Help - Tools User Guide - Assembler - Expressions

Autor: Jens-Erwin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ldi r16, (1<<TWINT)|(1<<TWSTA)

das ist ein Shift und zwar so

ich nehme mal als Beispiel:

ldi r16, (1<<PB2) | (1<<PB3)

PB2 ist eine Zahl, nämlich die 2, PB3 ist eine 3
die 1 vor dem << bleibt die 1 also 0b00000001

jetzt heißt 1<<PB2, dass die 1 um 2 Felder nach links verschoben wird,
also
0b00000001 dann 0b00000010, dann 0b00000100

so nun ist also Bit2 "markiert"

jetzt folgt das Bitweise Oderzeichen |

1<<PB3 ist nun 0b00001000 also die 1 um 3 Stellen verschoben

beide Werte mit "oder" verbinden 0b00001000 | 0b00000100
das Ergebnis ist 0b00001100, also beide Bits sind markiert

dieses TWINT z.B. ist auch nur eine Zahl um die dann die 1 nach links
verschoben wird....

Autor: Freak5 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich dachte diese Shiftoperation funktioniert nur in C und in AVR ASM ist
das LSR oder LSL.
Führt der Atmega das jetzt aus, oder macht der Compiler das vorher und
gibt den richtigen Wert an den AVR - Weiter(Code - Optimierung)?

Autor: Simon Küppers (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Letzteres, Diese Operation führt nur der Compiler aus, und dient
lediglich der Übersicht des Sourcecodes.

Wird also nich vom µC ausgeführt

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.