moj problem wynosi 4 milisekundy

0

kto zna mechanizm wytwarzania zdarzenia o czasie zadanym z gory?
konktretnie chodzi mi o wytworzenie impulsu o czasie trwania dokladnie 4ms niezaleznie od obciazenia CPU na porcie LPT. Ktos zna to zagadnienie?
Dodam ze przerobilem juz pomiar czasu w ramach odrębnego wątku (TThread) oraz poznalem funkcje API:

function GetThreadTimes(hThread: THandle; 
     var lpCreationTime, lpExitTime, lpKernelTime, lpUserTime:TFileTime): BOOL; stdcall;

Czy ktoś zna lepsze mechanizmy?
Jesli tak prosze o podpowiedź...

0

hmm wedlug mnie ciezko bedzie to zrobic bo nie masz pelnej kontroli nad prockiem. moze obejdz ten problem sprzetowo.. ?

0

moze Sleep(4)?

0
lebowsky napisał(a)

moze Sleep(4)?
To tylko w najbardziej korzystnym przypadku da odstęp około 4 ms.

0

A dokladniej bodaj 7. Poszukaj informacji na temat przelacznikow w boot.ini, tam cos bylo o zwiekszaniu dokladnosci timerow.

0

Do tego lepiej chyba lepiej uzyć jakiegoś prostego monowibratorka(mam nadzieję że nic nie pokręciłem)

0

na windowsie ani linuksie, w zasadzie na większości systemów operacyjnych pracujących w trybie chronionym, nie osiągniesz tego, bo to są systemy łagodnego czasu rzeczywistego, tj. mogą Ci zagwarantować tylko średni czas wykonania danej operacji.

0

Do kernela linuksowego są patche czyniące zeń system czasu rzeczywistego.
Śmiem twierdzić, że może sterownik mógłby tak precyzyjnie sterować zależnościami czasowymi...

// teoria mówi, że nie mógłby - Ł

//hmm to jak ludzie drivery do sieciówek itp piszą?

0

Tylko po co męczyć tym system operacyjny, jak za kilkadziesiąt groszy/kilka złotych można kupić przerzutnik mono/bistabilny, np.: NE555 lub podobny i rezystorkami (sztuk 2) oraz kondensatorem (sztuk 1) ustalić wymagany czas przerzutu?

0

Jak pokazałem w tu http://4programmers.net/Forum/viewtopic.php?id=77825 daje się odpowiednio szybki procesor zmusić do sprawdzenia czasu co w najgorszym wypadku dziesiatki, bez ostrego dociskania setki mikrosekund. Co bylo jednak badane na nieobciazonym systemie.

Do generowania impulsów o ściśle zadanym czasie trwania polegałbym jednak na innych zegarach niż to co mozna znaleźć w windows. Może karta dźwiękowa? Choć tu trzeba uważać: może być filtr górnoprzepustowy i nie da sie utrzymać stanu różnego niż zero przez dłuższy czas.

1 użytkowników online, w tym zalogowanych: 0, gości: 1