mikrocontroller.net

Forum: PC-Programmierung Systick auf PC simulieren


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Bert S. (kautschuck)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Ich programmiere eine kleine Simulation von einem Algorithmus in C auf 
einem Computer, wo nachher auf einen STM32 portiert wird. Verwendet wird 
der MinGW Compiler mit der eclipse IDE.

Wie kann ich auf einem normalen Computer einen Systick in C simulieren?

Grüsse Bert

Autor: Cyblord -. (cyblord)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bert S. schrieb:
> Hi,
>
> Ich programmiere eine kleine Simulation von einem Algorithmus in C auf
> einem Computer, wo nachher auf einen STM32 portiert wird. Verwendet wird
> der MinGW Compiler mit der eclipse IDE.
>
> Wie kann ich auf einem normalen Computer einen Systick in C simulieren?

Ein Thread der eine Variable hochzählt?

Das Problem wird sich bei JEDER benutzen Peripherie stellen, vor allem 
wenn sich deren Zustand spontan ändern soll.

: Bearbeitet durch User
Autor: Adam P. (adamap)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Cyblord -. schrieb:
> Ein Thread der eine Variable hochzählt?

Oder ein einfacher Timer.

Jedoch solltest du beachten das du den Timer nicht unter 10ms bekommst 
(kleinste Einheit).

Und ob der Timer (dein Programm) dann wirklich nach 10ms wieder die 
Abarbeitung aufnimmt, ist auch nicht sichergestellt.

Hatte immer was von 15,6ms gelesen, 1000ms/64.
Sowie bei MultimediaTimern maximale 2ms.

edit:
Jedoch muss ich zugestehen, dass ich mich damit noch nie in der Tiefe 
beschäftigt habe.

: Bearbeitet durch User
Autor: Walter T. (nicolas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Spiele-Engines wie SDL bieten eine nette Möglichkeit, auch Timer zu 
implementieren.

Ansonsten kannst Du eine Funktion namens SysTick() notfalls auch einfach 
in der Hauptschleife aufrufen.

Autor: Amateur (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Windows-System gibt es jede Menge Timer, die auch den, von Dir 
gewünschten Bereich, abdecken. Schau mal rund um timeGetDevCaps() und 
ein paar Hilfsroutinen nach. Muss aber nicht sein.

Autor: A. S. (achs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M.w.reicht eine eigene Task mit sleep(0).

Die 54.irgendwas ms sind aus alten Zeiten und 2^16 Ticks pro Stunde.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.