mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tiny25 in AVR-GCC und MUL-Befehl


Autor: Steffen B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen, ich schon wieder.

Ich möchte von Atmel den Tiny25 in C programmieren mit dem AVR-GCC. Das 
müsste gehen da er ja über SRAM verfügt.

Meine Frage bezüglich der Multiplikation ist: Da der Tiny keinen 
MUL-Befehl hat (Ich habs nur gelesen; hat er keinen? Wo kann ich das 
sehen?), kann ich in AVR-GCC eine Division durchführen oder geht es auch 
mit C nicht?
ergebnis = summe / anzahl

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Steffen B. (Gast)

>Wo kann ich das sehen?

Im Datenblatt, dort stehen alle unterstützen Befehle drin.

>), kann ich in AVR-GCC eine Division durchführen oder geht es auch
>mit C nicht?

Ich denke das geht. Die Division wird emuliert. Ist zwar langsamer und 
braucht ein wenig Flash, geht aber.

MfG
Falk

Autor: Steffen B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Recht schönen Dank für die schnelle Info.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steffen B. wrote:

> Meine Frage bezüglich der Multiplikation ist: Da der Tiny keinen
> MUL-Befehl hat (Ich habs nur gelesen; hat er keinen? Wo kann ich das
> sehen?), kann ich in AVR-GCC eine Division durchführen oder geht es auch
> mit C nicht?
>
>
ergebnis = summe / anzahl

Der MUL-Befehl ist für die Division vollkommen witzlos.

Allgemein können CPUs unbegrenzt komplexe Berechnungen ausführen, ohne 
dafür jeweils einen Befehl zu haben. Sowas wäre viel zu teuer.

Komplexe Berechnungen (Winkelfunktionen usw.) werden aus einfacheren 
zusammengesetzt.
Ein C-Compiler hat dafür entsprechende Bibliotheken.


Peter

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch die "größeren" AVRs haben keinen Divisionsbefehl und auch keine
anderen zusätzlichen Befehle, mit denen eine Division effizienter
implementiert werden könnte. Deswegen verwenden alle die gleiche und -
im Vergleich zu anderen Rechenoperationen - langsame Bibliotheks-
routine.

Nur bei den Multiplikationen können die Megas mit ihrer erweiterten
Hardware die Tinys eindeutig ausstechen.

Zum Glück haben die Divisionen in den meisten Programmen (zumindest
bei geschickter Programmierung) den mit Abstand geringsten Anteil an
allen Rechenoperationen. Das ist auch der Grund, warum die Hersteller
bei vielen Prozessoren gar keinen Divisionsbefehl vorsehen.

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.