Tiny25 in AVR-GCC und MUL-Befehl

Gast #783136
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?
1
ergebnis = summe / anzahl
#783158
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
#783334
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?
>
>
1
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
Gast #783425
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren