s.a.
arkadaşlar kafama takılan bir konu üzerinde kafam ağrımaya başladı. bana bu konuda yardım edecek bir arkadaş yokmu? şöyle ki....
bir PI sistem dedektör yapıyoruz çalışma frekansımız genellikle 100-200-300-400 hertz civarı
yazılımsal bir pı yapacaksak eğer frekansı oluşturan bir çevrim süresi
100 hertz de 10 mS
200 hertz de 5 mS
300 hertz de 3,33 mS
400 hertz de 2,5mS oluyor
şimdi yapacağımız dedektörde frekansın formunun bozulmaması istenen bir durumdur. bunun içinde ben genellikle timer0 kesmesi ile arka planda oluşturuyorum frekansımı ve genellikle 200 hertz kullanmayı tercih ediyorum. buda bir çevrimin 5 ms olmasına sebeb oluyor. şimdi yazılımda bu döngüyü 5mS içerisine sığdırmam gerekiyor. peki kullanacağım işlemler nelerdir?
1.pals ve örneklemeleri göndermek (bunu arka planda yaptığımız için sorun yok)
2. adc okumaları
3.hesaplamalar
4.lcd ye değerleri print etmek
1. sıradaki sorun değil, zaten aralığı oluşturan süreyi oluşturuyor.
2. ve 3. işlemler örneklemelerle beraber 2ms kadar sürüyor
geriye 4. işlem yani
lcd ye bilgi göndermeleri kalıyor
burada pili ölçmek, bargraf, vs diğer değerleri lcd ye basıyorum.
burada çözümüm kısmen aştım ama yine de aşamadığım noktalar var, mesela aştığım konular bataryayı ölçtüm "BATT:" kısmını ana döngüye girmeden hemen önce cld yi sildikten sonra yazdırıyorum aynı şekilde diyelim hassasiyet ,eşik vs başlıklarını ana programdan önce "HASS:", "EŞIK:"yazılıyorum. bunlara ait değerleri de ana programda karşılarına yazdırıyorum.bu yazdırma işlemi benim 3 ms lik süreyi taştığından 200 hertzlik sinyalim bozuluyor 100-80 herzte düşüyor.
yanilcd ye 3 haneli bir değeri bastığımızda 2 mS sürüyor süreyi aşmadı, ama başka bir 3-4 haneli bir değeri daha eklediğimde bana kalan 3 mS yetmiyor, bunu nasıl aşarım. yazıyı biraz uzattım farkındayım. umarım sorunumu anlamışsınızdır
tabi
başka bir teknikte pals ve örneklemeleri 5mS aralıklarla yapıp bunu 10 kez ana döngüde yaptırıp, her bir pals ve örneklemelerden sonra birer tane print yaparakta aşılabilir. bunu yapıyorumda ama bargarfı girince yine frekansımın formunda bozulmalar oluyor.
acaba bunu aşmak için LCD ile işlemci arasına bir entegre veya eleman girerek süreyi kısaltabilirmiyiz.
bu arada kullandıpım işlemci 18F4520 ve 48 MHz de çalışıyorum. bir komut işleme sürem ise 0,083uS hızımın yeterli olduğuna inanıyorum.