Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

sinyal uzunlugu

Başlatan otomasyon, 11 Nisan 2007, 15:11:03

otomasyon

selam;

16f877 kullanıyorum ide olarakta  ccs c kullanıyorum

timer0 ile porttan gelen sinyalin uzunlugunu ölçmek istiyorum.
timer'ın kullanımı konusunda da fazla bir bilgim yok.

şöyle varsayarsak;

port ilk anda 0 konumunda ve 1 konumuna geçince timer0  , SIFIRlanıcak ve

sinyal 0 konumuna geçince timer durucak ve ben de bunu ekranda

göstericem . yani sinyalin + da kalma süresini görmek istiyorum

timer'ı bu durumda nasıl kullanmalıyım..


yardımcı olmayı düşünen arkadaşlara şimdiden teşekkürler;

gloin

eğer yavaş bir sinyal değişimi varsa, basit olarak timer0 ı başlatırsınız, prescale kullanırsanız hassasiyetiniz azalır kullanmayabilirsiniz, timer taşarsa ekstra bir taşma değişkenini arttırırsınız ne kadar zaman geçtiğini tutmak için, lcd ye basarken de ufak bir hesapla toplam zamanı bulursunuz, bu şekilde olur.

eğer hızlı bir sinyalin peryodunu bulacaksanız tmr1 ile capture modülü işinize yarar
Gloin

XX_CİHAN_XX

Alıntı yapılan: "otomasyon"selam;
port ilk anda 0 konumunda ve 1 konumuna geçince timer0  , SIFIRlanıcak ve sinyal 0 konumuna geçince timer durucak ve ben de bunu ekranda
göstericem.
Nasıl yapman gerektiğini zaten çözmüşsün birkaç deneme yap çalıştıramadığın kodları buraya koy hatalarını bulup herkesin faydalanabileceği şekilde sorununu çözelim.
Burada birkaç önemli nokta var.Bu işlemler kesme ile otomatik yapılsın bu süreçte ana programın işleyişi bozulmasın istiyorsan(mantıklı olan budur) sinyal ölçeceğin ucu rb change kesmesıne baglamalısın.Bu kesme ile o pindeki her 1 den 0 a ve 0 dan 1 e geçişlerde rb kesmesi oluşacak ve böylece tmr0 ı anında start yada stop yaparak değerlendirebilirsin.
Önemli olan bir başka konu bu sinyal aralıgı nekadar uzun.Eger tmr0ı zaman aşımına ugratacak kadar uzun ise tmr0 kesmesi ve bununla birlikte ekstra taşma sayacları kullanman gerekir.Ama tmr0 taşmadan zaman olcumu bitiyorsa tmr0 kesmesinede zaman aşımı sayaclarınada gerek yok demektır.Tmr0 ın sayma hızını bölenleri (prescaler) ile oynuyarak sinyal aralıgına yada olcmek ıstedıgın hassaslıga gore aayarlıyabılırsın.
Kolay gelsin
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.