50 mikrosaniyelik timer

Başlatan z, 18 Aralık 2008, 18:13:37

z

Timer komponentine benzer bir komponent ariyorum.

Bu komponentin her 50 mikrosaniyede bir timer interrupt uretmesi gerekiyor. Yani yazacagim program parcasi her 50us de bir isletilmeli.

Programin uzerinde calisacagi isletim sistemi XP ve yukarisi olacak.

Bu isi nasil yaparim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Analyzer

Selam,

İncelemediyseniz burada mikrosaniye çözünürlüklü timerlar mevcut. Pentium ailesinin RDTSC yordamından faydalanmak gerekiyor.

http://www.torry.net/authorsmore.php?id=6848

http://www.torry.net/vcl/datetime/timers/lktimer.zip

İmplemente edilmiş hali :

http://www.delphi32.com/vcl/4900/

Analyzer
Üşeniyorum, öyleyse yarın!

z

Verdiginiz linkleri inceledim ancak sanirim istegimi karsilamiyor.

Aradigim komponentin interrupt mantigi ile calismasi ve ilgili procedure yerlestirecegim  programimi 50 mikrosaniye gibi kisa araliklarla peryodik olarak calistirmasi gerekiyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Analyzer

Selam,

Aslında sizin işinizi lktimer çözmesi lazım çünkü RDTSC fonksiyonu ile çalışıyor. Bunun da mantığı şu şekilde; örneğin siz bu timer komponentini 50 us olarak ayarladınız ve timer içerisine programınızı yerleştirdiniz. Timer'ı da enable yaptınız ve program çalışmaya başladı. Timer enable olduktan sonra her 50 us de bir içerisindeki programı çalıştıracaktır, ancak açıktır ki Timer içerisindeki programın çevrimi 50 us den az olması gerekir yoksa döngüye girer. Örn. çevrim süresi de 20 us sn olsun, kalan 30 us de ise sistem boşta kalıp ana fonksiyonda ilerlemeye çalışacak. lktimer hatırladığım kadarıyla bu şekilde çalışabiliyor. Ancak timerdan kalan sürede main fonksiyonunda ne kadar ilerler programınıza bağlı.  :roll:

Analyzer
Üşeniyorum, öyleyse yarın!

z

Daha da kotusu, isletim sistemi kendi islerini yuruturken islemciyi bana her 50 us de bir devredecekmi?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Analyzer

Alıntı yapılan: "z"Daha da kotusu, isletim sistemi kendi islerini yuruturken islemciyi bana her 50 us de bir devredecekmi?
Selam,

Evet bu da var ve windows tarzı multitasking'i taklid eden bir OS ile bu mümkün değil. Şu anki teknoloji ile 50 us ciddi rakam. Benim önerim yazılımdan ziyade donanım olurdu. Örneğin 50 us de bir sampling yapılıyorsa bunu bir donanıma yaptırmak ve heap gibi bir alana verileri kaydetmek ve oradan almak daha mantıklı gibi görünüyor. Sonuçta eğer yapacağınız işlem örn. sampling ise timer'dan çıktıktan sonra o veriyi işleyip bilgi haline getirmek gerekir ki onu da bir çekirdeğin kotarması gerekir. Yani mevcut bilgisayara işletim sistemi uyarlamak/yazmaktan ziyade donanım destekli bilgisayar daha mantıklı duruyor.

Analyzer
Üşeniyorum, öyleyse yarın!

z

Ama gavur yapmis.

Mach2, Mach3 vb.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Analyzer

Selam,

O zaman Ring0'ı araştırmakta fayda var  :)

Analyzer
Üşeniyorum, öyleyse yarın!

gevv