Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[VB] - Timer w milisekundach

kmineo 11 Lis 2013 15:03 1179 6
  • #1 11 Lis 2013 15:03
    kmineo
    Poziom 6  

    Czy ktoś wie jak w VB zrobić timer w milisekundach? Ustawienie Interval na 1 daje dokładność 1/100s.

    0 6
  • #2 11 Lis 2013 17:41
    cepelia
    Poziom 20  

    timer jest w milisekundach...

    0
  • Pomocny post
    #3 11 Lis 2013 18:25
    Przemo1268
    Poziom 19  

    Zależy jakie odcinki czasu chcesz odliczać i z jaką dokładnością. Ogólnie system Windows nie nadaje do odmierzania dokładnych odcinków czasu rzędu kilku ms i mniej. Wynika to z występowania w systemie wielu procesów, które są cyklicznie przełączane. Kiedyś pisałem bibliotekę do programowania mikrokontrolerów poprzez port LPT i tam do odmierzania krótkich odcinków czasu używałem funkcji QueryPerformanceCounter() oraz QueryPerformanceFrequency

    Przykład użycia:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Z tym, że takie coś dobrze jest wykonywać w oddzielnym wątku, aby nie blokować GUI. Możesz także pobawić się zmianą priorytetu wątku. Czas minimalny, jaki ustawisz będzie zapewniony. Gorzej będzie, gdy nie możesz przekroczyć wymaganego interwału. W moim programie czas maksymalny dla protokołu programowania był na tyle duży, że mogłem go pominąć. Potrzebowałem opóźnienia rzędu kilkudziesięciu us. Niestety timer takich niskich opóźnień nie zapewnia, a wstawianie 1ms strasznie wydłużyłoby proces programowania :)

    0
  • #4 11 Lis 2013 19:20
    cepelia
    Poziom 20  

    nationa instruments ma systemy czasu rzeczywistego i można spróbować za pomocą lab view to zaimplementować ale z tego co słyszałem na ostatniej konferencji przesiadają się raczej na linuksa bo w normalnym windowsie nie jesteś w stanie zapewnić zasobów dla danego procesu, nie wiem do czego potrzebujesz i jakie dokładności timera (bądź sekwencji procesów) chcesz uzyskać ale najlepiej nadają się do tego układy programowalne bo tam oprogramowanie umożliwia ci obejrzenie zależności czasowych.

    0
  • Pomocny post
    #5 11 Lis 2013 20:36
    Przemo1268
    Poziom 19  

    W załączniku przesyłam program (Visual C++/CLI) do pomiaru refleksu. Timer użyłem do generowania sygnału, po którym użytkownik ma nacisnąć przycisk. Czas reakcji mierzony jest za pomocą metody DateTime::Subtract().

    0
  • #6 16 Lis 2013 21:05
    101pawel
    Poziom 25  

    kmineo napisał:
    Czy ktoś wie jak w VB zrobić timer w milisekundach? ...
    funkcji API QueryPerformanceCounter.
    Pozdrawiam

    0
  • #7 17 Lis 2013 15:04
    kmineo
    Poziom 6  

    Kolega Przemo1268 podsunął Environment.TickCount. Jeśli zdefiniujemy zmienną o takiej wartości to mamy odczytaną liczbę milisekund od uruchomiania kompa. Działa to także świetnie, a nie ma w tym nic skomplikowanego.

    0