mikrocontroller.net

Forum: Compiler & IDEs Funktionsübersicht


Autor: Dominik L (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Gibt es irgendwo eine Übersicht über die Funktionen, die man mit dem
GCC Compiler mit den mitgelieferten Libraries hat? Suche z.B. einen
Befehl, um das obere und untere Nibbel zu vertauschen. Komme nämlich
mit den inline Assembler auch nicht klar.

Wäre nett, wenn mir einer wenigstens bei einem Problem helfen könnte.

MFG Dominik

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
avr-libc Manual [WinAVR]

Der Link ist nach der Installation von WinAVR auf dem Desktop und im
Startmenü zu finden.

Autor: Daniel Braun (khani)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dominik,

ist zwar ein bißchen spät, aber genau zum tauschen der nibbles ist im
Bereich "inline-assembly" ein Beispiel in der avr-libc-Dokumentation.
Außerdem versteht man den inline-assembler erst so richtig, wenn man ihn
mal ein wenig einstzt - learning by doing halt.

MfG, Daniel

Autor: Dominik L (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja dankeschön erstmal. Hab das da auch schon gefunden und man höre und
staune, es hat sogar mit der Anwendung geklappt. Also lieben Dank für
die Hilfe.

MFG Dominik

Autor: blöder ossi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wenns nicht gerade auf den allerletzten CPU-Zyklus ankommt, sollte
man lieber in C programmieren:

  i = i >> 4 | (unsigned char)(i << 4);



Peter

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist ganz lustig, was der Compiler daraus macht. Er erkennt zwar, daß er
die Verschiebung um 4 Bit als swap umsetzen kann, merkt aber nicht, daß
beide mit einem swap erschlagen werden können. Er kopiert also den Wert
in ein zweites Register, "swap"t dann beide, schneidet von jedem die
"überflüssigen" 4 Bits per andi weg und fürt die Ergebnise dann per
or wieder zusammen.

Autor: Daniel Braun (khani)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm,

vielleicht realisiert der liebe Compiler dabei nicht, dass einen die
"heringeschobenen Nullen" nicht interessieren - macht der Compiler
bei
i = ((i >> 4)&0x0F) | ((i << 4)&0xF0);
was anderes ? Ich könnte es erst heute abend testen, denn hier habe ich
keinen Compiler zur Verfügung.

MfG, Daniel.

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.