timer nesnesi

Başlatan OptimusPrime, 31 Ağustos 2009, 15:34:25

OptimusPrime

timer nesnesi thread olarak arka planda çalışan bir döngü müdür, yoksa donanımsal bir sayıcı mıdır?
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

bymrz

1. şık sanırım  ;)

OptimusPrime

1 saniyelik gecikme ile bir saat yaptım. fakat 15 dakikada 3 saniye geri kaldı sanırım bu bir donaımsal sayaç değil. :)
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

arslan74

Alıntı yapılan: "OptimusPrime"1 saniyelik gecikme ile bir saat yaptım. fakat 15 dakikada 3 saniye geri kaldı sanırım bu bir donaımsal sayaç değil. :)

Saat yapacaksan sitemin saatini oku, öylesi cok daha sağlıklı olur. Timerler belli zamanlarda döngüsel olarak belirli işleri yapmak için kullanılıyor.

ferdem

O "timer"a gerçek zaman dilimleri tutmak için güvenilmez, paralel porttan fonksiyon üretmeyi denerken sağlıksız sonuçlar almıştım. İyi çalışmalar.

wsxwsx

1 snlik timer olsun. her saniye, 20mS uzunluğunda  bip sesi üretilsin.  Normalde uygulama kendi halinde beklerken her saniye bip sesi duyarız. Formun, maksimize butonunu 5 sn süreile basılı tutalım. bu sırada timerin durduğu, bip sesinin kesildiği görülür.

Bir thread içinde sistem saati kontrol edilebilir. Aynı anda çalışmasını istediğiniz işlemleri ayrı threadler içine yerleştirirsiniz.

Normalde timer nesnesi  formun kendi Thread'ine senkron olduğu için formdaki bir kesintiden etkilenir. ayrı thread içinde olursa, formun meşguliyetinden  etkilenmez.

remzi

Alıntı yapılan: "OptimusPrime"timer nesnesi thread olarak arka planda çalışan bir döngü müdür, yoksa donanımsal bir sayıcı mıdır?

Donanımsal bir sayıcıdır...

picusta

Windows'un Multimedia Timer'ini kullanmalisin, onda sasma olmaz.

OptimusPrime

600µs bir gecikme yapmayı düşünüyordum ama böyle bir imkan olmadığını görünce 5 katı olan 3ms ilede işimi görebilirim diye düşündüm. timer nesnesi beni yarı yolda bırakınca vaz geçtim. :)
cevaplardan anladığım kadarıyla tahmin ettiğim gibi timer nesnesi donaımsal bir sayıcı değil. ;)
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

OptimusPrime

Alıntı yapılan: "picusta"Windows'un Multimedia Timer'ini kullanmalisin, onda sasma olmaz.

belli aralıklarda usb den veri alıp geri dönmem gerekiyor. WMT ne kadar kararlı olursa olsun bu seferde usb trafiğini beklemem gerekiyor sanırım.

vazgeçtim.:)
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

wsxwsx


muhittin_kaplan

timer işini görür.dediğiniz işlemi proton ve VB.net ile yaptım. usb hid ile gönderdim bilgiyi işleme tabi tutup geri aldım yanlız 120ms den daha kısa zaman aralığında bilgi almayı berceremedim.

wsxwsx

Alıntı yapılan: "wsxwsx"thread gerekli
Cihaz ile ilgili işlemler ayrı bir thread ile  yapılmalıdır.

Ufak bir thread örneği yaptım.  

http://www.mediafire.com/?xwuvomedg6g

OptimusPrime

THREAD_PRIORITY_HIGHEST
desenizde olmuyor. sanırım usb trafiğini de durduracak bişey lazım :)
dediğim gibi vaz geçtim.
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

picusta

Alıntı yapılan: "OptimusPrime"THREAD_PRIORITY_HIGHEST
desenizde olmuyor. sanırım usb trafiğini de durduracak bişey lazım :)
dediğim gibi vaz geçtim.
Bence senin programinin yapisinda sorun var. Süreç arasi senkronzasyona dikkat et. Olmadi driver yaz.