www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage AVR Tutorial: << und |


Autor: Chapmy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
evtl. habe ich auch nur irgendwo etwas überlesen, aber ich grübel nun 
schon seit einiger Zeit über einigen Zeilen des AVR-Assembler-Tutorials 
und konnte noch keine Antwort finden.

Es geht speziell um solche Befehle wie:

sbr temp1, 1<<4

oder

ldi temp, (1<<3) | (1<<1) | (1<<2) | (1<<0)

Was bedeuten in diesem Zusammenhang die "<<" und die "|" ? Was passiert 
konkret in den Aufrufen?

Ich habe das Gefühl, dass solche Ausdrücke relativ unvermittelt im 
Tutorial auftauchen. Kann aber auch sein, dass ich nur etwas überlesen 
habe. Sollte dem aber nicht so sein, dann wäre es vielleicht auch ganz 
hilfreich, wenn solche Operationen irgendwo mal näher erläutert würden.

Falls mir da jemand helfen könnte oder einen passenden Link geben könnte 
(nach "<<" sucht es sich sehr schlecht im Internet), wäre das sehr nett.


Vielen Dank und Gruß

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sind Operatoren, die ursprünglich aus C stammen (aber vom ASM für 
konstante Ausdrücke benutzt werden können

">>" = Rechts schieben
"<<" = Links schieben
"|"  = binäres Oder
"&"  = binäres Und
usw.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"a << b" ist das gleiche wie "a * 2^b"

d.h.

ldi temp, (1<<3) | (1<<1) | (1<<2) | (1<<0)

wird zu:

ldi temp, 8 | 2 | 4 | 1

wird zu:

ldi temp, 15

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich sollte an der Stelle im Tutorial ein Verweis auf den Artikel 
Bitmanipulation kommen.

Weisst du noch wo du auf die Hürde gestossen bist, damit man das 
Tutorial dort verbessern kann?

Autor: Chapmy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke! Eure Antworten in Kombination haben die Erleuchtung gebracht. :)

Ich habe gerade nochmal das Tutorial durchgeblättert. Wenn ich es 
richtig sehe, taucht soetwas zum ersten Mal im LCD Teil auf - ohne 
Verweis auf den erwähnten Artikel.
Wirklich dran hängen geblieben bin ich allerdings erst im Kapitel über 
die Schieberegister. Einen Link zu dem Artikel konnte ich jetzt so auf 
die Schnelle auf den ersten 4 Seiten des Tutorials nicht finden.
Vielleicht wäre es ganz gut, wenn der Link im LCD- und vielleicht auch 
nochmal im Schieberegister-Artikel auftauchen würde - schaden kann es ja 
nicht...

Autor: Chapmy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch eine Anmerkung:
Nachdem ich den Artikel zu den Bitmanipulationen jetzt mal überflogen 
habe, muss ich sagen, dass eure Antworten hier kürzer, verständlicher 
und besser waren.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe den Teil von Sebastian im Artikel Bitmanipulation ergänzt und 
Anmerungen im AVR Tutorial: LCD und AVR Tutorial: Schieberegister 
gesetzt. Ich hoffe die Artikel sind jetzt leichter verständlich. Danke 
für dein Feedback - das hilft die Artikel zu verbessern.

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.