- LiTime Speicher und Akkus         
Ergebnis 1 bis 10 von 11

Thema: wieviele Befehle kann mein µC in einem Taktzyklus erledigen?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    07.07.2011
    Beiträge
    35

    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

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Das sollte im Datenblatt stehen und hängt u.A. von der Breite des Befehlsregister (und der Taktrate) ab. 8 Bit Prozessoren können nur 1 Befehl pro Takt, 16,32,64 Bittige entsprechend mehr. Dazu kommt noch die Architektur des Prozessors da gibt es auch große Geschwindigkeits Unterschiede. Noch schneller würden speziell für Dein Problem "gestickte" FPGA's sein können. Dein Prozessor Typ sagt (mir) leider nichts, aber Du hast sicher ein Aktuelles Datenblatt.

    Gruß Richard

  3. #3
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Auch die 32 Bit µCs können normal maximal 1 Befehl pro Takt. Nur sind die Befehle bei den 32 Bit µCs etwas mächtiger, halt eine 32 Bit Addition statt einer 8 Bit Addition. Bei den DSPs gibt es einige die etwas mehr können, weil der mehr als eine CPU parallel arbeitet.

    Für die Erfassung des 200 kHz Signals reicht der µC aber wohl aus. Bei mir im Frequenzzähler schaft das auch ein 8 Bit AVR (Tiny2313) mit 20 MHz, bis knapp 300 kHz. Das sollte auch mit dem STM32 zu schaffen sein. Zur sicherheit aber noch mal ins Datenblatt schauen, denn die ARMs sind teilweise langsam beim Zugriff auf IO Register. Den Timer sollte man aber eher mit maximalem Takt laufen lassen damit man auch ein brauchbare Auflösung hat.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von Besserwessi Beitrag anzeigen
    Auch die 32 Bit µCs können normal maximal 1 Befehl pro Takt.
    Woher ich es habe ? Aber irgendwo hatte ich schon einmal mit Prozessoren zu tun welche mehrere Befehle mit/in einem Takt abarbeiten konnten. Leider ist (meine) Höchstform zu diesem Thema schon etwas länger zu Ende ich habe es schlicht vergessen (oder falsch in Erinnerung). Aderersteis wenn ein "Breiteres Register" pro Takt Parallel ver/be arbeitet werden kann, sollte es schneller gehen?

    Gruß Richard

  5. #5
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Beim PC sind die Prozessoren so weit, das die mehr als einen Befehl pro Zyklus können. Die üblichen µCs können das aber nicht, da ist man eher noch bei mehreren Zyklen pro Befehl. Da gibt es aber ggf. welche die einem einige Aufgaben durch spezielle Hardware abnehmen können (z.B. UART, Input Capture mit FIFO, "DMA"-Funktionen ).
    Durch die breiteren Register werden einige Aufgaben schneller, aber nicht alle. Hier hilft es vermutlich schon, weil die Auflösung des Timers auch eher bei 16-32 Bit liegt.

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Ich kenn den konkreten Processor nicht, aber beim AVR könnte man folgende Abschätzung vornehmen:

    Bei 1 MHZ Takt kann er in 1 µS einen Befehl ausführen.
    bei 24 MHZ und deinen 2.5 µS könnten also 24 * 2.5 Befehle abgearbeitet werden => 60

    Mit 60 Befehlen kannst du vielleich 5-6 mal Pin abtasten.
    zum halbwegs genauem Flankenerwischen ist das eher wenig (IMHO)
    Geändert von PicNick (08.07.2011 um 08:48 Uhr)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Ähnliche Themen

  1. Mein Asuro kann balancieren!
    Von waste im Forum Asuro
    Antworten: 64
    Letzter Beitrag: 24.10.2011, 22:20
  2. C++ Befehle mit einem USB-Adapter (mit FT232RL) nutzen
    Von Ulle23 im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 23.10.2008, 11:36
  3. Mein AVR kann GSM?
    Von 1hdsquad im Forum Elektronik
    Antworten: 28
    Letzter Beitrag: 16.03.2007, 19:05
  4. Wie kann ich mit C I2c-Befehle ausgeben ?
    Von faboi im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 3
    Letzter Beitrag: 11.04.2006, 19:23
  5. Antworten: 6
    Letzter Beitrag: 14.08.2005, 14:50

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test