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!
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.
Vielliehct ist er unsicher, ob ein Zyklus einem Takt-Impuls entspricht. Die Formel ist jedenfalls richtig.
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.
Stefan schrieb: > Vielliehct ist er unsicher, ob ein Zyklus einem Takt-Impuls entspricht. Dann soll er das auch fragen. Noch besser allerdings: Im jeweiligen Datenblatt nachlesen.
Ich lese doch Zyklen? Meinst Du die geamte Programmlaufzeit je Zyklus?
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
FH_Student schrieb: > Ist die Formel korrekt? Ist das die neuste Variante des Witzes: Geht 'ne Blonde zur Uni... ??? Oliver
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
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!!!
FH_Student schrieb: > in Maschinenzyklus entspricht 12 Taktzyklen. Also musste ich mein > Ergebnis noch x12 rechnen. Eigentlich lautet die Antwort 42... Oliver
FH_Student schrieb: > Ein Maschinenzyklus entspricht 12 Taktzyklen. Ein 8051er. Studierst du Archäologie oder Alte Geschichte?
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!
@ 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.
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 ...
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)...
Max D. schrieb: > aber Vorsicht: Der AVR braucht zeit um zb. in den Interrupt zu springen Und er braucht auch für manche Befehle 2 oder gar 3 Zyklen...
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.
Lothar Miller schrieb: > Und er braucht auch für manche Befehle 2 oder gar 3 Zyklen... das habe icht mit erwähnt: Max D. schrieb: > Cycles des jeweiligen Befehls gesucht
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.