Forum: PC-Programmierung Systick auf PC simulieren


von Bert S. (kautschuck)


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

von Cyblord -. (cyblord)


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
von Adam P. (adamap)


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
von Walter T. (nicolas)


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.

von Amateur (Gast)


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.

von A. S. (Gast)


Lesenswert?

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

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

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.