01-05-2017 01:55 PM
Hekese iyi çalışmalar dilerim.
Timed loop'u 1Mhz de çalıştırıyorum yani 1uS de bir işlesin istiyorum. Ve döngü içerisinde cRIO'nun dijital çıkışlarından 2 tanesinin durumlarını kontrol ediyorum, bununla birlikte her 20uS de bir analog girişi okumaya çalışıyorum. Lojik durumları ve okuma süresi için döngü iterasyonunu kontrol ediyorm. Mesela iterasyonu(i)'yi 20 ye bölüyorum sonra kalan 0 mı diye bakıyorum ve analog girişi okuyorum.(her 20uS de bir okumak için.) dijital girişlerin durumunuda aynı şekilde, mesea dijital çıkış 0 ı dire döngü başlayınca 0 yapıyorum. 10ms sonra sıfıra çekmek istiyorum bunun için ilk başta iterasyonu 10 000 ile karşılaştırıyorum(10 000us =10ms mantığı ile) eğer eşitse çıkışı sıfırlıyorum. Fakat bu durumda doğru olmuyor 100 ile karşılaştırdığımda bana 10ms lik bir fark veriyor. Sebebi nedir ? Programı ekte yolluyorum.
Solved! Go to Solution.
01-09-2017 04:20 AM
Kodu 2015 olarak kaydedip gönderebilir misiniz?
01-09-2017 05:42 AM
v2015
01-09-2017 07:56 AM
Kullanmış olduğunuz 1MHz Clock program içerisindeki bütün işlemlerin 1us içerisinde gerçekleşeceği anlamına gelmiyor. Çevrim zamanını Timed Loop özellikleri içerisinde Loop Timing Attributes bölümündeki Period değeri belirler. Iterasyon değeri programınızın her çevriminde 1 artacağı için programınız en iyi ihtimalle Period değerindeki kadar hızlı çalışır. Eğer işlemci belirttiğiniz süre içerisinde yazmış olduğunuz kodu işleyemezse bu süre dahada uzun olacaktır. Bu nedenle zamana bağlı bir işlem iterasyon sayısına bağlamak doğru değildir. Bunun yerine Tick Count fonksiyonunu kullanarak ne kadar süre geçtiğini daha doğru bir şekilde algılayabilirsiniz.
01-09-2017 08:17 AM
İlginiz için teşekkürler.
Yapmak istediğim olay 20us de bir analog veri almak ve cRIO sample ratesi buna musait fakat yukardaki gibi bir problemle karşılaşıyorum. Bunun için önerebileceğiniz bir yol,metod,yöntem varmı ? tickcount sanırsam ms ile işlem gerçekleştiriyordu, onun için ona başvurmadım çünkü gerçekleştirmek istediğim periyod 20us liyelik periyotlar.
01-10-2017 02:47 PM
cRIO varsa niye FPGA içerisinde üretmiyorsunuz? Özel bir sebebi var mıdır?
İyi çalışmalar,
Emre
AnsoLab Elektronik
01-11-2017 03:24 AM
Bu hızlara çıkmak teorik olarak mümkün olsada Scan Interface modunda bu hızlarda veri alamazsınız. Emre beyin söylediği gibi FPGA Interface modunu kullanmanız gerekir. Fakat CRIO sample rate yüksek olsada veriyi kendi ekranınıza aktarmak istediğinizde bu hız düşecektir. FPGA kullanarak Buffered veri transferi yaparak en yüksek hıza ulaşabilirsiniz.
İngilizce biliyorsanız http://www.ni.com/tutorial/11198/en/ sayfasında konu ile ilgili detaylı açıklamalar mevcut.
02-02-2017 10:43 AM
Mehmet_SARIKOÇ ve etuzuner biraz geç oldu cevap vermem ama ilginiz için teşekkürler. Sinyali FPGA ile almak zorunda kaldık ve istediğimiz örneklemeye bu sayede ulaşabildir.
İyi çalışmalar dilerim.