Forum: Mikrocontroller und Digitale Elektronik Zeit eines Befehles bei einem Quarz microcontroller


von Samo Z. (samo)


Lesenswert?

Hallo zusammen ich hätte eine blöde frage und zwar geht es um meinen 
Praktikumsversuch ,ich habe viel im Internet recherchiert aber nix 
gefunden .
also wie kann man die Zeit an einem angeschlossenen Mikrocontroller 
Quarz mit 10 Mhz ,die für Ausführungs eines Befehls benötigt ?
gibt es eine bistimmte Formel dafür
Danke im Voraus

von NichtWichtig (Gast)


Lesenswert?

Klarer Fall von RTFM ;)

von Lehrer (Gast)


Lesenswert?

NichtWichtig schrieb:
> Klarer Fall von RTFM

Klarer Fall von zu fauler Schüler.
Rechtschreibung, Plenken ....

von georg (Gast)


Lesenswert?

Samo Z. schrieb:
> gibt es eine bistimmte Formel dafür

Nein, aber Tabellen - Befehle brauchen unterschiedlich viele Taktzyklen, 
und sowieso ist das bei jedem Prozessor anders.

M.a.W. Ja, es gibt Formeln, mindestens 1 Million davon.

Georg

von Lehrer (Gast)


Lesenswert?

... und wenn man seine eigenen Fragen schon als blöd hinstellt ....

von Horst V. (hoschti)


Lesenswert?

NichtWichtig schrieb:
> Klarer Fall von RTFM ;)

Klarer Fall von Selbstbeweihräucherung! Sag ihm doch zumindest worauf er 
schauen soll. Nicht alle sind so schlau wie Du.


Lehrer schrieb:
> Klarer Fall von zu fauler Schüler.
> Rechtschreibung, Plenken ....

Ich verstehe wirklich nicht, was ihr immer mit dem Plenken für ein 
Problem habt. Klar ist das nicht so schön. Aber wenn man bei iOS die 
Auto-Korrektur an hat, macht die SW nach jeder Ersetzung / 
Auto-Vervollständigung automatisch ein Leerzeichen hinter das Wort. Geht 
mir auch auf den Keks, habe aber noch keine Möglichkeit gefunden, das 
abzuschalten.

Für den TO:
Schau Dir mal die Befehlstabellen der Prozessoren an. Da ist für die 
einzelnen  Befehle auch die Zahl der Taktzyklen angegeben. Zusammen mir 
dem Takt ist der Rest leicht zu rechnen. Aber Achtung: Quartz-Takt ist 
nicht unbedingt der CPU-Takt.

von Wolfgang (Gast)


Lesenswert?

Samo Z. schrieb:
> also wie kann man die Zeit an einem angeschlossenen Mikrocontroller
> Quarz mit 10 Mhz ,die für Ausführungs eines Befehls benötigt ?

Kannst du das bitte noch mal als vollständigen und verständlichen Satz 
formulieren?

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Horst V. schrieb:
> Aber wenn man bei iOS die
> Auto-Korrektur an hat, macht die SW nach jeder Ersetzung /
> Auto-Vervollständigung automatisch ein Leerzeichen hinter das Wort. Geht
> mir auch auf den Keks, habe aber noch keine Möglichkeit gefunden, das
> abzuschalten.

Dann muss man eben händisch die Leerzeichen entfernen.

von Veit D. (devil-elec)


Lesenswert?

Samo Z. schrieb:

> also wie kann man die Zeit an einem angeschlossenen Mikrocontroller
> Quarz mit 10 Mhz ,die für Ausführungs eines Befehls benötigt ?
> gibt es eine bistimmte Formel dafür
> Danke im Voraus

Wenn der Eingangstakt nicht weiter runtergeteilt wird, dauert eben ein 
Takt = 1/10MHz = 100ns.

Der Rest ist Fleißarbeit. Du brauchst vom Programm das Assemblerlistung. 
Darin siehst du alle verwendeten Befehle. Jetzt musste im 
Datenblatt/Manual nachschauen welcher Befehl wieviel Takte benötigt, 
alles addieren und mit 100ns multiplizieren. Mehr Zauber ist das nicht. 
Bei AVR unter 'Instruction Set' zu finden. Neuerdings ist das ein 
separates .pdf.

von Samo Z. (samo)


Lesenswert?

> Der Rest ist Fleißarbeit. Du brauchst vom Programm das Assemblerlistung.
> Darin siehst du alle verwendeten Befehle. Jetzt musste im
> Datenblatt/Manual nachschauen welcher Befehl wieviel Takte benötigt,
> alles addieren und mit 100ns multiplizieren. Mehr Zauber ist das nicht.
> Bei AVR unter 'Instruction Set' zu finden. Neuerdings ist das ein
> separates .pdf.

ich bin neu hier und in dem 3 semester und das ist mein erster 
Praktiumsversuch deswegen habe ich gar keine Vorkenntnisse dafür

aber deine Antwort Passt sehr gut zu meinen Recherchen ,da ich für zwei 
Takte 200ns berechnet habe
Vielen Dank und wünsche dir ein schönes Wochenende
MfG

von Samo Z. (samo)


Lesenswert?

Vielen Dank

von Samo Z. (samo)


Lesenswert?

Vielen Dank

von c-hater (Gast)


Lesenswert?

Horst V. schrieb:

> Ich verstehe wirklich nicht, was ihr immer mit dem Plenken für ein
> Problem habt. Klar ist das nicht so schön. Aber wenn man bei iOS die
> Auto-Korrektur an hat, macht die SW nach jeder Ersetzung /
> Auto-Vervollständigung automatisch ein Leerzeichen hinter das Wort. Geht
> mir auch auf den Keks, habe aber noch keine Möglichkeit gefunden, das
> abzuschalten.

Dabei wäre das doch SOOO einfach: Kein iOS benutzen...

Problem->Lösung.

Beitrag #6451501 wurde von einem Moderator gelöscht.
Beitrag #6451512 wurde von einem Moderator gelöscht.
von GeraldB (Gast)


Lesenswert?

Samo Z. schrieb:
> also wie kann man die Zeit an einem angeschlossenen Mikrocontroller
> Quarz mit 10 Mhz ,die für Ausführungs eines Befehls benötigt ?

Das kann man nicht pauschal sagen. Da muß man immer im Datenblatt des 
ex­pli­ziten MC nachschauen. Ein MC kann mit der Quarzfrequenz laufen. 
Manche MCs haben aber auch einen festen oder aktivierbaren Vorteiler. Es 
gibt aber auch MCs mit Frequenzvervielfacher. Und dann muß man halt 
schauen, wie viele Takte die einzelnen Befehle benötigen.

von Christian S. (roehrenvorheizer)


Lesenswert?

>also wie kann man die Zeit an einem angeschlossenen Mikrocontroller
>Quarz mit 10 Mhz ,die für Ausführungs eines Befehls benötigt ?


Hallo,

um das Geschriebene zu verstehen, schlage ich vor, dem ersten Teil ein 
Verb zu spendieren, z.B. messen oder bestimmen. Im nachfolgenden Teil, 
der vermutlich als Relativsatz gedacht sein sollte und den man im 
dritten Semester aus Zeitgründen am besten verkürzt, füge ich ein "er" 
ein, da mir weibliche Mikrocontroller erfahrungsgemäß noch nicht 
begegnet sind. Aber mit der Zeit wird auch das noch kommen... Die sehen 
dann schicker aus.


Man braucht aber heutzutage seine im Internet veröffentlichten Schriebe 
nicht mehr nachlesen, um sie zu korrigierren, da dies andere gerne 
übernehmen.



mfG

: Bearbeitet durch User
von Jens M. (schuchkleisser)


Lesenswert?

Horst V. schrieb:
> Aber wenn man bei iOS die
> Auto-Korrektur an hat, macht die SW nach jeder Ersetzung /
> Auto-Vervollständigung automatisch ein Leerzeichen hinter das Wort. Geht
> mir auch auf den Keks, habe aber noch keine Möglichkeit gefunden, das
> abzuschalten.

Android machts wieder weg, wenn man dann ein Satzzeichen drückt. ;)
Ich dachte, ein OS das den Usern das Denken immer mehr abnimmt, sollte 
es besser können?
Wäre doch eine Innovation für die Eifon13's: Endlich eine Autokorrektur 
die funktioniert. So wie alles vom Android ein paar Generationen vorher 
geklaut, aber die Schafe werden es fressen.

@Samo
Du musst dich in ein Datenblatt für den Prozessor einlesen, den du 
benutzen willst.
Da steht zum einen drin, wie der Oszillator im System benutzt wird, zum 
anderen, wie viele Systemtakte ein bestimmter Befehl braucht.
Damit kann man sich dann zusammenreimen, wie schnell das Programm läuft.

von Maxim B. (max182)


Lesenswert?

Samo Z. schrieb:
> also wie kann man die Zeit an einem angeschlossenen Mikrocontroller
> Quarz mit 10 Mhz ,die für Ausführungs eines Befehls benötigt ?

Das hängt von Controller ab. Z.B. bei dem 8751 dauert ein Befehl mit 10 
MHz-Quarz 1,2, 2,4 oder 4,8 us, je nach Befehl.

: Bearbeitet durch User
von my2ct (Gast)


Lesenswert?

Christian S. schrieb:
> Man braucht aber heutzutage seine im Internet veröffentlichten Schriebe
> nicht mehr nachlesen, um sie zu korrigierren, ...

... nachzulesen ...
;-)

von BB84 (Gast)


Lesenswert?

Jens M. schrieb:
> Horst V. schrieb:
> Aber wenn man bei iOS die
> Auto-Korrektur an hat, macht die SW nach jeder Ersetzung /
> Auto-Vervollständigung automatisch ein Leerzeichen hinter das Wort. Geht
> mir auch auf den Keks, habe aber noch keine Möglichkeit gefunden, das
> abzuschalten.
>
> Android machts wieder weg, wenn man dann ein Satzzeichen drückt. ;)

By the way, iOS sollte das natürlich auch so machen. Bezüglich solcher 
Features nehmen die sich Beide nicht viel. Evtl. kann Horst das nochmal 
testen?

von Peter R. (pnu)


Lesenswert?

Nun regt euch nicht auf wegen des Plenkens. Bei manchen Typen in der 
Schreibmaschinenzeit ergab das Plenken ein schöneres Schriftbild.
Meiner Meinung nach ist das einfach Geschmackssache, da es ja das 
Textverständnis in keiner Weise beeinflusst.

    hat das in irgendeiner Weise etwas mit der Frage des TO zu tun?
    hat das in irgendeiner Weise etwas mit der Frage des TO zu tun ?

Hier sind die Leerzeichen äußerst üppig, da fällt das Plenken ja auf. 
Wenn das Leerzeichen nur die Breite eines Einzelbuchstabens hat, ist die 
Wirkung ganz anders; noch schlimmer siehts bei Schreibmaschine aus: da 
sitzt dann das Fragezeichen in möglichen Fällen direkt am vorangehenden 
Buchstaben, ohne Abstand drangequetscht.

Außerdem gewinnt man durch das geplenkte ? etwas Zeitabstand zum Denken.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Alles in allem ist das ein durchaus erfolgreicher Trollversuch.
Sogar der Wochentag paßt. Einen Einmal-Account hat er auch angelegt.

Chapeau!

von H.Joachim S. (crazyhorse)


Lesenswert?

Samo Z. schrieb:
> und in dem 3 semester
> aber deine Antwort Passt sehr gut zu meinen Recherchen ,da ich für zwei
> Takte 200ns berechnet habe

Das ist doch eigenständiges arbeiten, Informationsbeschaffung und 
korrekte Verarbeitung.
Ok, Grundschulniveau, aber Lernwille und Grundverständnis ist 
offensichtlich vorhanden :-)

von GeraldB (Gast)


Lesenswert?

Christian S. schrieb:
> füge ich ein "er"
> ein, da mir weibliche Mikrocontroller erfahrungsgemäß noch nicht
> begegnet sind.

Sitzen zwei Emanzen am Frühstückstisch. Da sagt die eine zu der anderen: 
"Gib mir mal bitte die Salzstreuerin."

von Christian S. (roehrenvorheizer)


Lesenswert?

my2ct schrieb:
> Christian S. schrieb:
>> Man braucht aber heutzutage seine im Internet veröffentlichten Schriebe
>> nicht mehr nachlesen, um sie zu korrigierren, ...
>
> ... nachzulesen ...
> ;-)

hast mich erwischt!

von Sebastian S. (amateur)


Lesenswert?

>Klarer Fall von RTFM ;)
Find ich zwar etwas hart, ist aber in diesem besonderen Fall zutreffend.

Manchmal wird der Takt intern geteilt; manchmal wird der Takt 
vervielfacht.

Schon mit diesen einfachen Möglichkeiten sollte wohl klar werden, dass 
es vor allem darauf ankommt, über welchen Mikrocontroller hier 
gesprochen wird.

Diese Fragen werden aber nur im zugehörigen Manual erläutert. Hinzu 
kommen noch Informationen, die wiederum auch Prozessorspezifisch sind, 
wie viele Taktzyklen für den jeweiligen Befehl benötigt werden. Letztere 
sind aber noch nicht mal über alle Befehle konstant.
Hat das Teil auch noch eine Pipeline wird es sogar richtig kompliziert.

Die richtige Antwort auf diese Frage lautet also: Kommt darauf an. Bzw. 
(R)ead (T)he (M)anual.

von John (Gast)


Lesenswert?

Jens M. schrieb:
> Horst V. schrieb:
>> Aber wenn man bei iOS die
>> Auto-Korrektur an hat, macht die SW nach jeder Ersetzung /
>> Auto-Vervollständigung automatisch ein Leerzeichen hinter das Wort. Geht
>> mir auch auf den Keks, habe aber noch keine Möglichkeit gefunden, das
>> abzuschalten.
>
> Android machts wieder weg, wenn man dann ein Satzzeichen drückt.

Bei iOS werden die Leerzeichen, die bei der 
Ersetzung/Auto-Vervollständigung hinzugefügt werden automatisch 
entfernt, wenn man direkt danach ein Satzzeichen eingibt.
Um zu Plenken muss man schon aktiv ein Leerzeichen gefolgt von einem 
Satzzeichen eingeben.

von M. K. (Gast)


Lesenswert?

Samo Z. schrieb:
> gibt es eine bistimmte Formel dafür

Nein.
Das hängt sehr von Deinem Mikroprozessor ab, wie es selbstverständlich 
auch in den Datenblättern dieser MCUs steht.
Der ganz olle 8051 hat z.B. den Takt durch 4 geteilt, weil er die intern 
benötigte.
Schon beim STM8, einem extrem billigen kleinem Ding, kann man das nicht 
mehr so genau sagen, weil der versucht durch Tricks seine 
Hardwareeinheiten besser auszulasten.

Die Frage ist aber obsolet.
Niemand würde heute noch von vornherein ein Timing über das Zählen von 
Taktzyklen machen, wenn es einen anderen Weg gibt.
Größer 100Mhz bekommst Du für lachhaftes Geld.
Exaktes Timing macht man über Harwaretimer und IRQs und vermeidet 
möglichst Delay Konstrukte weil die alles blockieren.

Also erkläre Dein Problem, was Du tun willst und Du bekommst bessere 
Antworten.

von Maxim B. (max182)


Lesenswert?

M. K. schrieb:
> Exaktes Timing macht man über Harwaretimer und IRQs und vermeidet
> möglichst Delay Konstrukte weil die alles blockieren.

Wenn es um wenige us und unter 1 us geht, kann Harwaretimer wenig 
helfen.
Als Beispiel: gestern habe ich mit ATMega und F_CPU=16MHz für das Lesen 
von externen Gerät experimentiert, was besser ankommt:
1
asm volatile("lpm");
2
asm volatile("nop");
1
asm volatile("lpm");
2
asm volatile("rjmp .+0");
 oder
1
asm volatile("lpm");
2
asm volatile("lpm");
Solche Verzögerungen mit Hardwaretimer zu machen - wie geht das? Kann 
man mit dem Hardwaretimer eine Verzögerung zwischen 62,5 ns und 375 ns 
machen?

: Bearbeitet durch User
von M. K. (Gast)


Lesenswert?

Maxim B. schrieb:
> Wenn es um wenige us und unter 1 us geht, kann Harwaretimer wenig
> helfen.

M. K. schrieb:
> vermeidet
> möglichst Delay Konstrukte

Deswegen 'möglichts' und nicht 'immer' ;-)

von LostInMusic (Gast)


Lesenswert?

>Quarz mit 10 Mhz ,die für Ausführungs eines Befehls benötigt ?
>gibt es eine bistimmte Formel dafür

Natürlich. Diese Zeitspanne beträgt bei 10 MHz Quarzfrequenz

Darin ist n = 1, 2, 3,... die Anzahl der Takte zur Ausführung der 
betreffenden Instruktion durch den Controller. Die entsprechenden Werte 
sind üblicherweise in einer Tabelle im Datenblatt aufgelistet. Bei 
komplexen Controllern, die mit Tricks arbeiten, kann man für n sicher 
noch einen (dann wahrscheinlich nicht mehr ganzzahligen) Mittelwert 
angeben, berechnen oder in einem konkreten Anwendungsfall durch Messung 
bestimmen und die Formel bliebe in diesem Sinne dann immer noch richtig. 
Dabei sollte man selbstverständlich "mathematisch korrekt" und 
"ökonomisch sinnvoll" auseinanderhalten (es sind zwei völlig 
verschiedene Kategorien).

Die Größe m berücksichtigt den Fall, dass der Controller gar nicht mit 
10 MHz läuft, obwohl der Quarz mit 10 MHz schwingt, weil intern ein 
Frequenzteiler oder -vervielfacher aktiv ist. Dann muss m auf den 
entsprechenden Teil- bzw- Vervielfachungswert gesetzt werden (sonst m = 
1). Beispiel: Bei enableter CLKDIV8-Fuse eines AVRs ist m = 1/8 zu 
setzen.

Die Einheit µs stimmt, weil 1 µs der Kehrwert von 1 MHz ist.

von Route_66 H. (route_66)


Lesenswert?

Christian S. schrieb:
> da mir weibliche Mikrocontroller erfahrungsgemäß noch nicht
> begegnet sind.

Es gibt sie aber!
Ich habe irgendwo Z8-Controller verbaut, die haben Huckepack ein EPROM 
drauf.
Die Löcher für deren PINs sind definitiv weiblich!

von (prx) A. K. (prx)


Lesenswert?

Christian S. schrieb:
> da mir weibliche Mikrocontroller erfahrungsgemäß noch nicht
> begegnet sind

Kommandiert werden sie aber alle von einer das Zeitverhalten 
entscheidend prägenden CPU. Und die ist weiblich.

von Bastler_HV (Gast)


Lesenswert?

Feministisches OT:

Der Führerin entgegen! - Belles Lettres
https://www.belleslettres.eu/pdf/genus-gendersprech.pdf

Warum logischer Verstand und Sprachzentrum nich dasselbe sind.

von Sebastian S. (amateur)


Lesenswert?

@ LostInMusic
>Die entsprechenden Werte
>sind üblicherweise in einer Tabelle im Datenblatt aufgelistet.
Da würde es aber meine Unterschrift nicht geben.
Manche Leute benutzen bedingte Verzweigungen, und da weiß - außer Dir - 
niemand, wie lange das Teil für den Befehl braucht. Natürlich steht im 
Datenblatt irgendwo z.B. 1 oder 2 Takte. Was aber nun zutrifft...

Anders ausgedrückt: Dein Ton liegt etwas daneben, wenn Du Dich, in der 
Musik, auf so etwas verlässt.

von Musicus (Gast)


Lesenswert?

>Anders ausgedrückt: Dein Ton liegt etwas daneben, wenn Du Dich, in der
>Musik, auf so etwas verlässt.
Ruckzuck wird aus C ein C#

von LostInMusic (Gast)


Lesenswert?

>Manche Leute benutzen bedingte Verzweigungen, und da weiß - außer Dir -
>niemand, wie lange das Teil für den Befehl braucht.

So ein Fall ist natürlich absolut denkbar. Vielen Dank für diese 
berechtigte Kritik. Da wäre ich jetzt nie drauf gekommen.

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.