www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT89C51: Wie schnell?


Autor: bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

kann mir jamand sagen, wieviele Befehle ein 40MHz AT89C51-Prozesser so
im Durchnitt schaft.

Danke

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
teil dir 40MHz durch 12... dann hast du die MIPS

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schade, daß es die nicht mit internem Oszillator gibt...

Autor: Blackmike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommt auch drauf an, welchen Typ Prozessor du hast. Es gibt die
Prozessoren auch mit X2 Core von Atmel, Phillips, Dallas etc ,- z.B.
die Rx2,- AC2 serie,-
die braucht nur 6 Takte anstatt 12 pro Zyclus.

Internen Oszillator haben die leider nicht,- pass aber auf, wenn du
einen Quarz dranhängst, das es ein Grundton Quarz ist. Bei reichelt
sind die Normalen Quarze ab 24 Mhz 3.Oberton Quarze und da schwingt der
interne Oszillator ohne externe Zusatzbeschaltung nur auf dem Grundton
(s. Atmel Application Node: third tone crystal). Da bin ich mal drauf
reingefallen. Da ist fertiger Quarzoszillator mit Anschluß an XTAL1
besser.

greetz,- Black

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"teil dir 40MHz durch 12... dann hast du die MIPS"

Nö, nur bei 1-Zyklus-Befehlen. Im Durchschnitt ist das deutlich
weniger.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@dirk:
naja, das wäre zumindest die höchste Geschwindigkeit, die ein
"normaler" 8051 erreichen kann, wenn er nur mit 1-Zyklus-Befehlen
betreiben wird (z.B. NOPs...).
Beim AVR gibt man die auch so an...
Vielleicht hätte ich "bis zu" noch hinzufügen sollen...

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab ich das richtig verstanden?
Wenn ich einen High Speed ???51 mit 60MHz nehme, schaft der gerade mal
5MIPS?

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit normalem Core schon. wenn er aber bei der frequenz auch x2 macht hat
er 10 mips.
Falls du diese zahl jedoch mit den 16-24 mips der avr familie
vergleichen willst musst du bedenken, dass der 8051 ein cisc und der
avr ein risc prozessor ist. dadurch hat der 8051 bei selben mips einen
vorzug gegenueber dem avr, da seine instruktionen sehr viel maechtiger
sind und vom avr in mehrere kleiner geteilt werden muessen. Genaue
zahlen kann ich dir jedoch nicht geben.

Gruß Tobias

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Bernd,

"Hab ich das richtig verstanden?
Wenn ich einen High Speed ???51 mit 60MHz nehme, schaft der gerade mal
5MIPS?"


Laste das erstmal aus, dann reden wir weiter.

Ich benutze oft einen Standardquarz 11,0592MHz, also lächerliche
0,9MIPS, habe aber noch nie Zeitprobleme gehabt, die sich nicht mit
etwas besserer Strukturierung lösen ließen.

Oder anders gesagt, bei grottenschlechter Programmplanung kriegst Du
auch einen C8051F120 (100MIPS) zum Qualmen.


Peter

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"...da seine instruktionen sehr viel maechtiger sind und vom avr in
mehrere kleiner geteilt werden muessen."

Sehr interessant. Welche sind das denn ?

Autor: Blackmike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
read modify write befehle auf ports und register zum bleistift....

laß hier aber nicht in das dogma enden, die 51er sind besser oder die
avr sind besser.... jede family hat ihre vorzüge,- gibt
programmalgorithmen, wo ein 51er einen avr stehen läßt,- umgekehrt auch
algorithmen, wo ein 51er  dann alt ausschaut.

Bei etwas größeren projekten greife ich eigentlich immer zu meinem
favoriten, 89c51Rx2, und selbst wenn ich dann mit dem RTX arbeite,-
ist der kleine immer noch satt schnell.
die entscheidung ist allerdings keine reine
geschwindigkeitsentscheidung,- sondern die unterstützung des
Multitaskting Echtzeit OS durch den Keil Compiler.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Schwarzer Bruder,

" ...laß hier aber nicht in das dogma enden,... "

Dann sieh Dir den AVR-Befehl SBI an und bring bitte ein Beispiel, was
zieht. Ein Bleistift schreibt nicht von alleine :-)

Autor: Blackmike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ähm, ich glaub, ich kenn die Befehlssätze auch...

SBI beim AVR setzt ein bit,- ok, das geht beim 51er mit set.

mit read modify write ist gemeint zum bleistift:
anl p1,[register],[konstante],[speicher]
direktes AND auf dem Portbyte mit argument entweder register, konstante
oder speicherinhalt und zurückschreiben an P1.

oder ANL P1.0,[Register][bitspeicher]
direktes AND des Portbits mit bitregister oder inhalt aus bitspeicher
und zurückschreiben in den Port

Das ganze funzt mit Ports und speicher.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michael,

"...und bring bitte ein Beispiel, was zieht."

z.B.:

8051:

djnz 70h, label
....
label:

= 3 Byte

AVR:

lds r16, 0x70
dec r16
sts 0x70, r16
brne label
....
label:

= 12 Byte


Das Thema wurde hier schon oft besprochen, da findest Du noch mehr
Beispiele.

Aber so riesengroß sind die Unterschiede in der Summe nicht, AVR-Code
ist in realen Programmen nur etwa 20% größer als 8051-Code, egal ob in
C oder Assembler.

Der größte Nachteil der AVRs sind die fehlenden Interruptprioritäten.


Peter

Autor: Blackmike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter

dein beispiel ist auch gut,- aber ich wollt hier net in Dogmen
verfallen. Beide Controller sind gut und haben ihre Vor und Nachteile.
Bei den 51er´n gehts dann mit der Performance in den Keller,- sobald
ich soviel Speicher habe, das ich im PDATA oder noch schlimmer in XDATA
Segment arbeiten muß.

Das Gewurschtel mit dem oder den (je nach Hersteller bis zu 4 Stück)
DPTR Register,- um auf XDATA zugreifen zu können,- das ist dann halt
Nachteil des 51er Cores...

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.