wieviele Befehle kann mein µC in einem Taktzyklus erledigen?
Hallo,
ìch hätte gerne eine Frage:
Ich verwende Mikrocontroller STM32F10xx, der mit 24 MHz tacktet. Mit dem möchte ich ein Signal erfassen, dessen Frequenz (Max. Frequenz) bei 200 KHz liegt. Ich möchte aber 2-Fach abtasten (Sowohl die Steigende als auch die Fallende Flanke= mehr Informationen rausholen). Dies möchte ich mittels Timmer-Interrupt/ capture realisieren. per Prescaler stelle ich den Timertackt auf 400 KHz ein.Somit wird das Eingangssignal 2-Fach abgetastet.
Nun, Darf ich davon ausgehen, dass der µc innerhalb 2,5µs (das ist der Abtastrat 1/ 400 KHz) 24 (auf diese Zahl bin ich aufgrund der MCU-Frequenz gekommen) Befehlen erledigen kann?
Ich hoffe, ich habe die Frage richtig gestellt.
Übrigens ich bin Student, der Null Erfahrung mit Programmierung von Mikrocontroller hat. Also bitte um Verzeihung wenn ich Blöde Frage stelle.
Vielen Danke im Voraus
1-zeil von C-Code entspricht 5-Zeille von ASS-Code
Hallo,
ich danke allen für die Antwort.
Durch weitere Recherche bin ich darauf gekommen:
* 1-Zeile eines C-Code entspricht 5-Zeilen von Assembler-Code. Jede Zeile von Assebler-code bedeutet Ein Befehl.
* Die CCU arbeitet unabhängig von dem kern-prozessor. Das heisst; sie arbeitet quasi parallel
Schlussfolgerung besagt, dass der µc (Laut der og. Angabe) 24-Zeile Assebler-Code in millionstel Secunde erledigen kann.
Erst wenn CCPU einen Interrupt auslöst, dann wird 12 Taktzyklen für das Sprengen von dem Main-Programm ins ISR und 6 Taktzuklen für das Zurücksprengen (von ISR in Main-Programm) benötigt. Also Ingesamt 18 Taktzyklen für hin und her. Dann bleibt übrig nur ca. 6 Taktzyklen.
mit Ziffern heisst das:
Taktsystem 24MHz -> 41,6 ns oder 0,0416 µs
Psc-Takt(Prescaler) 400KHz -> 2,5 µs
D.h. innerhalb einem PSC-Takt macht das System ca. 60 Takten
von diesem 60 Takten wird 18 Takten für hin und her um sonst verschwunden (0,75 µs).
Übrig bleibt doch genung und zwar 42 Takten (1,75 µs).
D.h. Alles was zu rechnen etc. zu tun is, soll befor die Nächste steigende Flanke erledigen, nämmlich innerhalb von 1,75 µs oder 42 systemtakten.
Ist meine Schlussfolgerung Richtig? Ich brauche doch von euch als wissender Bestätigung?!