Forum: Mikrocontroller und Digitale Elektronik Atmega Geschwindigkeit 16 Bit+Division


von Max (Gast)


Lesenswert?

Hallo,
ich hätte mal eine Frage. Ersteinmal angenommen ich hätte ein Array von 
2000 16 Bit Integern. Wie lange würde ein Sortieren auf einem Atmega 
dauern (Takt 16MHz). Kann das jemand mal intuitiv abschätzen?
Dann wie verhält es sich mit einer 16Bit Division wie lange dauert diese 
ca.

Und wie viel langsamer wird der Atmega allgemein, wenn ich statt 8Bit 
mit 16Bit arbeite.

Viele Dank

von Karl H. (kbuchegg)


Lesenswert?

Max schrieb:

> 2000 16 Bit Integern. Wie lange würde ein Sortieren auf einem Atmega
> dauern (Takt 16MHz). Kann das jemand mal intuitiv abschätzen?

Kommt drauf an welches Sortierverfahren du benutzen willst.
Also: Such dir ein paar aus, implementiere sie und stoppe die Zeit. Du 
kannst nur daraus lernen. Auch das qsort aus deiner C-Library ist keine 
schlechte Wahl, wenn keine Gefahr eines Stacküberlaufs besteht.

Suchen und Sortieren sind Grundfertigkeiten eines Programmierers. 
Zumindest ein Sortierverfahren sollte jeder Programmierer auf Abruf im 
Kopf haben.

> Dann wie verhält es sich mit einer 16Bit Division wie lange dauert diese
> ca.

Probiers aus.

> Und wie viel langsamer wird der Atmega allgemein, wenn ich statt 8Bit
> mit 16Bit arbeite.

Kommt auf die Operationen an. Für Additionen/Subtraktionen ist es in 
etwas das Doppelte, Multiplikationen/Divisionen sind aber bei weitem in 
16 Bit langsamer. Komplexere Operationen, die ja als Kombinationen von 
+-*/ dargestellt werden, sind dann in 16 Bit wesentlich langsamer, wobei 
die Anzahl der Multiplikationen/Divisionen der bestimmende Faktor ist.


All die Dinge, die du hier fragst, kann man nur mit einem 'kommt drauf 
an' beantworten. Hier gilt die Devise: Probiers aus!
Das geht auch schneller, als du hier die Frage tippen kannst.

von Falk B. (falk)


Lesenswert?

@  Karl heinz Buchegger (kbuchegg) (Moderator)

>> 2000 16 Bit Integern. Wie lange würde ein Sortieren auf einem Atmega
>> dauern (Takt 16MHz). Kann das jemand mal intuitiv abschätzen?

>kannst nur daraus lernen. Auch das qsort aus deiner C-Library ist keine
>schlechte Wahl, wenn keine Gefahr eines Stacküberlaufs besteht.

Das wird er aber, wenn schon 4KB RAM belegt sind beim AVR ;-)

>Zumindest ein Sortierverfahren sollte jeder Programmierer auf Abruf im
>Kopf haben.

Die guten ins Töpfchen, die schlechten ins Kröpfchen ;-)

>an' beantworten. Hier gilt die Devise: Probiers aus!

Ich würde sagen. Simulier es.

MfG
Falk

von LordZiu (Gast)


Lesenswert?

Zu den Themen Mul/Div und Bubblesort gibt es auch Applikation-Notes von 
Atmel: No.200 und No.220

Bei der AppNote zur Mul/Div findest du sogar Übersichten, welche 
Operationen bei welcher Optimierung wieviele Takte benötigen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.