[ mrkvojed @ 05.04.2005. 12:34 ] @
Probao sam sa standardnim Delphi timerom ali to nije to.

Zadatak : Napraviti Windows aplikaciju koja ce imati
interrupt na svakih T1=0.5ms ili T2=1ms (brze=bolje),
ali da bude nekako prioritetan tako da ga
nijedan Win program ne sme zadrzati duze od 0.1ms .
Cak iako T drhti +- 0.1 ms mora se garantovati
2000 tj. 1000 odradjenih int-ova u sekundi.

Loodilo 2 : pri svakom tom int-u treba razmeniti
sa USB-om 64 bajta download i 64 bajta upload
ako moze vise - jos bolje.

Pomagajte : da li to moze teoretski
i da li se neko prakticno rvao sa tim ?

[Ovu poruku je menjao secret dana 06.04.2005. u 16:31 GMT+1]
[ Srki_82 @ 05.04.2005. 14:21 ] @
Ako ti treba sto brze onda ti ni ne treba timer. Napravis poseban thread, postavis prioritet na time critical i dok je Terminated <> True do UpisUSB, CitanjeUSB. Ako upis i citanje radi dugo (50 ms ili ko zna koliko) to ce biti usko grlo i tesko da tu mozes nesto da ubrzas.
[ Milos D @ 05.04.2005. 15:28 ] @
Probaj sa TimeSetEvent funkcijom (unit mmSystem, vidi i u helpu objasnjenje) i sa visim prioritetom celog programa.
[ morlic @ 05.04.2005. 16:43 ] @
Nikakav critical za nit, to bi bilo pogubno za sistem. Ono sto treba mrkvojedu :) je obicna komunikacija sa portom. Treba samo da prouci MSDN i asinhroni rad sa portovima. Ima lepih clanaka u MSDN-u (bez koga nema ozbiljnog rada na ovu temu).
[ Srki_82 @ 05.04.2005. 16:54 ] @
Ja sam koristio time critical thread-ove i nisam primetio neke promene na sistemu!? Mada... nikad u njima nisam radio nesto sto zahteva puno vremena.
[ mrkvojed @ 05.04.2005. 19:08 ] @
Polako ljudi ... Ja sam medium user Delphi 6-ce

Ove critical niti nisu lose, svaka cast !

Ali kako ja dobijam milisekunde od sistema ?
Da znam kad se promeni - da reagujem.

Mozda cak i mikrosekunde ???

A el se neko bavio USB-om ?

Pozdrav svima

Ako se ovo ikad resi - bice to duuugo dopisivanje...
[ Srki_82 @ 05.04.2005. 19:16 ] @
Imas dve funkcije koje mogu da ti pomognu QueryPerformanceCounter i QueryPerformanceFrequency. To je nesto kao GetTickCount samo sto se mnoooogo brze vrednost povecava. Kod mene se poveca za jedan svakih 240 nano sekundi (otprilike).
[ mrkvojed @ 06.04.2005. 14:18 ] @
Imam problem sa nitima - nekako mi se ne unishtavaju.

Ove query f-je su mi jasnije : uradih QCounter , pa opet , pa razliku podelish
Qfrekvencijom, pa to pomnozish sa recimo 2000(toliko mi inta treba u sekundi) ,
pa to Round-ujesh. Pa cekash da skoci za 1.

Ali i tu mi nekad preskoci neki int ???

Moze li mi neko napisati Project (vidi zadatak u 1. poruci) sa praznom procedurom
doSomething(koja ce posle da pricha sa USB-om) i da ga okachi ovde ?

Ako stavim Critical kako ce mi raditi ostale Win aplikacije ?

Mnogo pitanja : primer bi mi pomogao

Hvala svima
[ Srki_82 @ 06.04.2005. 17:15 ] @
U thread-u koji treba da radi posao napravis ovako Execute funkciju
Code:
begin
  repeat
    if VremeZaCitanje then Citanje;
    if VremeZaUpis then Upis;
  until Terminated;
end;

Moguce je da ti preskace po neki int ako se dugo zadrzavas u procedurama za citanje i pisanje. Zamisli da npr. citas sa nekog pokvarenog uredjaja kojem treba 2 sekunde da ti vrati podatak... razumes sta hocu da ti kazem. Probaj da optimizujes malo te funkcije. Ne znam kako vrsis upis i citanje, ali verovatno otvaras neku konekciju ili tako nesto... to ne bi trebalo da radis svaki put kad pozoves Citanje nego na pocetku thread-a otvoris konekciju, a na kraju zatvoris... za optimizaciju ce morati neko drugi da ti pomogne.

Sto se tice TimeCritical thread-ova... probaj pa ces videti :) Ako previse uspori rad racunara postavi priority na Highest. Taj prioritet ne bi trebalo da ti mnogo zeza racunar... vizualizacija u WinAmp-u po default-u radi na Highest prioritetu.
[ mrkvojed @ 11.04.2005. 08:38 ] @
Ne vredi.

Kada radi neoptrerecen ( u intu se ne radi nista )
opet nemam 1000 intova u 1sec. Preskace.
[ Srki_82 @ 11.04.2005. 16:47 ] @
Kako znas da nemas 1000 int-ova u sec ako nista ne radis u intu!?
[ mrkvojed @ 11.04.2005. 21:52 ] @
Pa nije bukvalno nista.

Brojim :)
[ Srki_82 @ 11.04.2005. 22:10 ] @
A kako ispisujes taj brojac? Da ne koristis mozda Synhronize?
[ mrkvojed @ 14.04.2005. 10:04 ] @
Odustao.

Hvala svima i pozz :)
[ sasas @ 14.04.2005. 10:20 ] @
Citat:
Odustao.


Ne htedoh pre da te obeshrabrujem, ali PAMETNO!

ss.