Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Izgleda nemoguce ali ... Napraviti Windows aplikaciju koja ce imati interrupt na svakih T1=0.5ms ili

  • 14 odgovora
  • 4.357 pregleda

Najnovija ↓

Izgleda nemoguce ali ... Napraviti Windows aplikaciju koja ce imati interrupt na svakih T1=0.5ms ili 05.04.2005. u 13:34 · pre 262 meseca
izmenjeno 1 put, poslednji put secret 06.04.2005. u 16:31
  1. secret06.04.2005. u 16:31zapis iz teksta poruke
#1
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 ?
Re: Izgleda nemoguce ali ... 05.04.2005. u 15:21 · pre 262 meseca #2
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.
Potpis
Play Store
Re: Izgleda nemoguce ali ... 05.04.2005. u 16:28 · pre 262 meseca #3
Probaj sa TimeSetEvent funkcijom (unit mmSystem, vidi i u helpu objasnjenje) i sa visim prioritetom celog programa.
Re: Izgleda nemoguce ali ... 05.04.2005. u 17:43 · pre 262 meseca #4
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).
Re: Izgleda nemoguce ali ... 05.04.2005. u 17:54 · pre 262 meseca #5
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.
Potpis
Play Store
Re: Izgleda nemoguce ali ... 05.04.2005. u 20:08 · pre 262 meseca #6
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...
Re: Izgleda nemoguce ali ... 05.04.2005. u 20:16 · pre 262 meseca #7
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).
Potpis
Play Store
Re: Izgleda nemoguce ali ... 06.04.2005. u 15:18 · pre 262 meseca #8
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
Re: Izgleda nemoguce ali ... Napraviti Windows aplikaciju koja ce imati interrupt na svakih T1=0.5ms ili 06.04.2005. u 18:15 · pre 262 meseca #9
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.
Potpis
Play Store
Re: Izgleda nemoguce ali ... 11.04.2005. u 09:38 · pre 262 meseca #10
Ne vredi.

Kada radi neoptrerecen ( u intu se ne radi nista )
opet nemam 1000 intova u 1sec. Preskace.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme