www.mikrocontroller.net

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


Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: LordZiu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

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.