INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

Schleife Timing Samplerate manuell



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

31.07.2019, 13:17
Beitrag #1

seuk Offline
LVF-Grünschnabel
*


Beiträge: 38
Registriert seit: May 2018

2019x64
-
EN


Deutschland
Schleife Timing Samplerate manuell
Hallo Zusammen,

ich lese über einen DLL-Aufruf (call shared library) eine Kamera aus. Die Zeit, die der Aufruf benötigt, ist nicht immer gleich und die Kamera hat ein Buffer. Nun kann ich der DLL keine Samplerate oder ähnliches angeben und bin somit für das Timing selbst verantwortlich. Ich möchte kein Bild doppelt auslesen und auch kein Bild verpassen.

Wie erreiche ich, dass ich Bilder mit den versprochenen 80Hz auslesen kann?


   

Ich hab gerade mal ein kleines Test VI zusammen gebastelt, welches nicht deterministisch zwischen 0 und 10ms wartet und damit den DLL-Aufurf simuliert. Um die verbleibende Wartezeit (Timoutanschluss der While-Schleife) zu ermitteln, wird die Differenz des Tick Counts vor dem DLL-Aufuruf und danach ermittelt. Der Rest ist nur zur Anzeige und Überprüfung

Gibt es dafür auch schlauere Herangehensweise? Vermutlich eine sehr grundlegende Frage. Es tut mir leid wenn die schon tausendmald beantwortet wurde - ich hab auf die Schnelle nichts gefunden...

Schönen Gruß,
seuk
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
31.07.2019, 19:53
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Schleife Timing Samplerate manuell

Akzeptierte Lösung

Hallo seuk,

letztendlich bist du hier immer vom Windows-eigenen Timing (bzw. dessen Störungen) abhängig…

Aber du könntest auch:
- Eine normale While-Loop nehmen und ein WaitUntilNextMultiple verwenden
- eine TimedWhileLoop verwenden: hier bekommst du auch mitgeteilt, ob eine Iteration zu spät dran war… (außerdem könntest du an der Prio herumdrehen)

In der Schleife dann möglichst keine weiteren Operationen, sondern das neue Bild gleich per Queue an einen Consumer weiterreichen.

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: