Mikrocontroller Abarbeitungszeit ausrechnen

Gast #2738759
Hallo Forum,

ich würde gerne die Abarbeitungszeit von diversen Programmen meines 
Mikrocontrollers ausrechnen.

Gegeben:
        Frequenz: 12 MHZ
        Zyklen: 10

Meine Formel:

    Abarbeitungszeit = (1/FREQUENZ)*ANZAHL_ZYKLEN =(1/12MHZ)*10 = 0,8us


Ist die Formel korrekt?


Vielen Dank!
#2738763
FH_Student schrieb:
> Hallo Forum,
>
> ich würde gerne die Abarbeitungszeit von diversen Programmen meines
> Mikrocontrollers ausrechnen.
>
> Gegeben:
>         Frequenz: 12 MHZ
>         Zyklen: 10
>
> Meine Formel:
>
>     Abarbeitungszeit = (1/FREQUENZ)*ANZAHL_ZYKLEN =(1/12MHZ)*10 = 0,8us
>
>
> Ist die Formel korrekt?

Ist das jetzt eine Fangfrage?
Wenn eine Maschine zur Herstellung 1ner Glasflasche 1 Sekunden braucht, 
wie lange braucht sie dann für 50 Flaschen?

Hmm. Das ist irgendwie auf dem Niveau der 3. Klasse Grundschule.

OK. Das die Periodendauer (also die Zeit) das Reziproke der Frequenz 
ist, ist Niveau der 6. Klasse (oder wann man heutzutage das erste 
Physikjahr absolviert). Von daher ist das schon schwerer.
Gast #2738773
Misst, zu früh Auf Absenden geklickt. Ich meinte, die Formel ist bei 
einem AVR richtig, denn der macht einen Zyklus pro Takt.

Das gilt aber nicht für alle Mikrocontroller. Bei der 8051 Serie waren 
es 6 Takte pro Zyklus, soweit ich mich erinnere.
Gast #2738784
Allerdings muss dabei beachtet werden wie viele Takte der µC zu 
abarbeitung eines Befehlszykluses braucht.


meistens gilt

AVR (ATmega, ATtiny):

1 Taktzyklus = 1 Befehlszyklus

PIC16F, PIC18F:

4 Taktzyklen = 1 Befehlszyklus
Gast #2738832
Hallo techniker,

beim STM32 ist "prinzipiell" im eingeschwungenen Zustand auch so dass 
die CPU das in einem Takt macht.
AAABER: die hat ne Pipeline und bei Sprüngen wird die erstmal geflusht 
(geleert) und dann braucht das seine Zeit bis die CPU dann wieder 
ausführen kann. Und die Wartezeit aufs Flash muss auch noch beachtet 
werden. Es gibt auch Befehle die benötigen mehrere Befehlszyklen. Ein 
Blick ins Datenblatt ....

Grüße
Gast #2738834
Vielen Dank für die Antworten.
Ihr habt mich auf die richtige Spur gebracht und Google hat mir die 
Lösung geliefert!

Ein Maschinenzyklus entspricht 12 Taktzyklen. Also musste ich mein 
Ergebnis noch x12 rechnen.

Jetzt komme ich auf die Ergebnisse vom Prof!

MfG!!!
Gast #2738947
Hallo!
@lkmiller
> Ein 8051er. Studierst du Archäologie oder Alte Geschichte?
...lass gut sein.
Um das Verständnis zu vermitteln, wie Mikrocontroller arbeiten, ist es 
unerheblich welche Plattform verwendet wird. Moderne 8051-Kerne brauchen 
auch keine 12 Takte für einen Maschinenzyklus.
Außerdem ist das Interrupt-System dieser alten Architektur wesentlich 
leistungsfähiger als das der AVRs!
#2738957
@  Route_66 (Gast)

>Außerdem ist das Interrupt-System dieser alten Architektur wesentlich
>leistungsfähiger als das der AVRs!

Muss ja, bei 12 Takten pro Maschinenzyklus ;-)

Verschachtelte Interrupts sind schon gut, aber die Praxis des AVR zeigt, 
dass es oft auch ohne geht.
Gast #2738967
Karl Heinz Buchegger schrieb:
> Hmm. Das ist irgendwie auf dem Niveau der 3. Klasse Grundschule.
>
> OK. Das die Periodendauer (also die Zeit) das Reziproke der Frequenz
> ist, ist Niveau der 6. Klasse (oder wann man heutzutage das erste
> Physikjahr absolviert).

Naja, Kollege:
die Unterscheidung von "dass" und "das" ist auch Grundschulniveau ...
#2739060
Ins db gekukt: Cycles des jeweiligen Befehls gesucht -> alles 
zusammenaddieren -> ergebniss mit Zeit für einen Zyklus (beim AVR 1/f) 
multiplizieren -> Zeit für den Abschnitt, aber Vorsicht: Der AVR braucht 
zeit um zb. in den Interrupt zu springen (meistens gehts ja um sowas)...
#2739079
Jötze schrieb:
> Karl Heinz Buchegger schrieb:
>> Hmm. Das ist irgendwie auf dem Niveau der 3. Klasse Grundschule.
>>
>> OK. Das die Periodendauer (also die Zeit) das Reziproke der Frequenz
>> ist, ist Niveau der 6. Klasse (oder wann man heutzutage das erste
>> Physikjahr absolviert).
>
> Naja, Kollege:
> die Unterscheidung von "dass" und "das" ist auch Grundschulniveau ...

Schon.
Nur sind wir hier nicht in einem Grammatikkurs.
#2739320
Falk Brunner schrieb:
> Verschachtelte Interrupts sind schon gut, aber die Praxis des AVR zeigt,
> dass es oft auch ohne geht.

Ein AVR kann auch verschachtelte Interrupts. Dazu muss man eben in C 
gleich in der ersten Zeile der ISR oder eben in ASM nach retten der 
nötigen Register die Interrupts wieder einschalten. Aber du hast recht, 
man braucht es meist nicht...

mfg mf, der an einem Moto 68k "gelernt" hat...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.