Timergenauigkeit



  • eine eingen timer über einen Thread proggen.. vll. geht der genau.. muss ich selber auch mal probierne:)



  • Wenn das OS die Beschränkung ist, dann geht es logischerweise nicht genauer...
    Es sei denn Dein Timer ist "unter" dem OS (was z.B. diverse Echtzeiterweiterung für Windows machen).

    PS: Es geht nicht um Genauigkeit! sondern um "Determinismus"!



  • erklär mal dsa mit dem "determinismus" wie ist es den möglich ne rel. genaue echtzeitfähige anwendung in windows zu realiseiren oder geht das vom kernel her schon nich?



  • BorisDieKlinge schrieb:

    erklär mal dsa mit dem "determinismus" wie ist es den möglich ne rel. genaue echtzeitfähige anwendung in windows zu realiseiren oder geht das vom kernel her schon nich?

    es geht vom kernel her nicht.
    man kann nicht vorher wissen, wann ein thread wieder dran ist.
    das kann in 50µS oder in 3 tagen sein 😉
    deswegen gibt's realtime extensions, die priorität vor dem win-kernel haben. damit wird das laufzeitverhalten eines codes vorhersehbar.
    wenn die rtx dran ist, muss windoze warten...



  • kann man das denn erzwingen bspw. wenn man mit thread arbeitet das die in-realtime verarbeitet werden?



  • Also nochmals: Windows ist kein Echtzeitbetriebssyytem!

    Somit kannst Du in Windows (NT/XP) keine Echtzeit erzwingen... Und "Echtzeit" hat nix mit "Zeit" zu tun, sondern nur mit "Determinismus" (also dass es zu 100% garantiert ist, dass ein Thread nach einer definierten Zeit wieder an die Reihe kommt).

    Anders sieht es in Windows CE aus, da kann man harte Echtzeit erzielen (oder auch bei diversen Echtezeiterweiterungen für Windows für RTX (welches z.B. von Siemens als Soft-SPS verwendet wird).



  • da gibts doch so ne windows version von Siemens (SPS) welche eine modifizierten kernel für echtzeit hat... kan das sein?

    Sorry steht ja schon oben;)



  • ICh hab so ein ähnliches Problem, nur steh ich noch was weiter am Anfang.

    Ich Brauche einen Timer, der genauer als der WM_TIMER ist, da ich einen Schrittmotor ansteuern will.

    Ich will/wollte einen Multimediatimer nehmen, aber hänge etwas bei der initialisierung und dem allgemeinen Gebrauch fest (also wo ich was einbetten muss, damit er läuft). Kann mir da einer Weiterhelfen?

    Ich brauch keine Echtzeit sondern einen eine aufösung <20ms.



  • Was ist bei "timeSetEvent" unklar?



  • unklar ist mir, WO ich das einstzen muss. Als extra Funktion oder als Event beim z.b. Buttenklick oder als teil der normalen Timerfunktion. Das ist mein Problem.

    hab zu dem Thema leider keine Bsp. gefunden. Sons würde ich ja nicht fragen...



  • Kann man auf RTX windows stinknormale Anwendung welche in MFC programmiert wurden laufen lassen? oder sind da andere Biblotheken erforderlich? grüße



  • @BorisDieKlinge: RTX Windows sit ein "Aufsatz" (besser Untersatz) für Windows. Dein Windows bleibt ganz normal erhalten. Auch laufen da alle Anwenungen ganz normal. Nur unter dem Windows läuft das RTX und wenn Du die RTX-API verwendest, kannst Du da auch Echtzeit-Tasks laufen lassen. Aber natürlich nur unter verwendung der RTX-API; hat nix mit WinAPI zu tun!

    @Uruk-h4j: Wenn Du den Timer bruachst, dann startest Du ihn mit der Funktion und wenn nicht mehr dann löscht Du ihn wieder mit timeKillEvent



  • schon mal mit der RTX api gecodet... d.h. normal anwendunge welche nicht unter der RTX API gecodet wurden können nich in echtzeit ausgeführt werden?



  • BorisDieKlinge schrieb:

    schon mal mit der RTX api gecodet

    Nicht produktiv....

    BorisDieKlinge schrieb:

    normale anwendungen welche nicht unter der RTX API gecodet wurden können nich in echtzeit ausgeführt werden?

    Nein, natürlich nicht. WIe sollten sie denn auch? *Windows* wird ja durch den RTX-Kern *nicht* Echtzeitfähig! sondern nur RTX ist echtzeitfähig!



  • es ist ja sogar eher nachteilig für normale windows-programme, denn eine RTX task bekommt die rechenzeit auf jeden fall, windows zieht dabei immer den kürzeren...



  • hmm ok... ich denke mal das RTX nicht unbedingt groß verwendet wird bzw. verbreitet ist. wird die API nicht unbedingt umpfangreich sein oder (verglichen mit der MFC)



  • BorisDieKlinge schrieb:

    hmm ok... ich denke mal das RTX nicht unbedingt groß verwendet wird bzw. verbreitet ist.

    richtig. ist auch irgendwie doof, sowas mit 'nem pc zu machen, auf dem schon windows rumeiert. lieber eine externe schaltung mit einem microcontroller o.ä. dranstöpseln und schon haste echtzeit. das ist so ganz nebenbei auch noch viel kostengünstiger als eine RTX lizenz...



  • naja um komplexe echtzeitsteurugne zu coden.. ist C/c++ sicherlich angenehmer als SPS...



  • BorisDieKlinge schrieb:

    naja um komplexe echtzeitsteurugne zu coden.. ist C/c++ sicherlich angenehmer als SPS...

    wieso sps?
    µCs werden für gewöhnlich in C programmiert. c++ ist auch möglich.
    damit hat man echtzeit ohne den ballast eines betriebssystems.
    und falls man doch ein OS braucht --> http://www.freertos.org/
    kostet nix 🙂
    dagegen, eine freie RTX für windows hab' ich noch nie gesehen 😞



  • ja es geht darum... steuerung komplexer maschinen von SPS auf C/C++ abzusplitten..

    das komplexere berechnungen via C++ gmeacht werden, und die eigentlich steurung noch in SPS und zwischen SPS und windows sollt dann eine schnittstelle verwendet werden.. und dafür ist nunmal nur RTX geeigent oder


Anmelden zum Antworten