avatar_Bahri Bilir

Pals Sayımını Hassaslaştırmak?

Başlatan Bahri Bilir, 12 Ekim 2015, 11:43:02

ete

Hesaplama işinde çözünürlüğü artıralım öyle dene istersen.
Ben sim.. de deniyprum sorunsuz çalışıyor.
Hesap işini şöyle yap,
Veri=(TALCAK+TYUKSEK)/100  'değerleri us den ms ye çeviriyoruz.
   Frekans=10000/Veri

Ete

Bahri Bilir

#16
Evet hocam bu şekilde daha iyi çalıştı.Hocam hassaslaştırmak adına hesabı;
Veri=(TALCAK+TYUKSEK)/17  'değerleri us den ms ye çeviriyoruz.
Frekans=59500/Veri
şeklinde yaparsak veri bölme oranı düştüğü için daha hassas bir veri elde etmiş olmazmıyız?
"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

ete

Doğru hesap şekli benim verdiğim şekildedir. Sen böyle iyi sonuç alıyorsan kullanabilirsin.
Programdaki sigorta ayarlarıda yanlış bence. 4Mhz 'e göre işlem yaptık ama HS_OSC seçili ayarlarda.
Bana kalırsa aşağıdaki ayarları kullanmalısın.
@ __config _BODEN_ON & _BOREN_ON & _CP_ON & _DATA_CP_ON & _PWRTE_ON & _WDT_ON & _LVP_OFF & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT
DEFINE OSC 4

Ete

Yasin

Alıntı yapılan: ete - 13 Ekim 2015, 10:30:29
Çünki 4Mhz frekansda o timer her bir sayımı 1us ye ye tekabül eder.

Erol Bey, kristal frekansına göre sayım süresini hesaplamak için bir formül var mıdır?

Bahri Bilir

Yasin Bey cevab önceki mesajlarda mevcut;

Alıntı yapılan: ete - 12 Ekim 2015, 19:31:52
Frekans nedir? F=1/T dir. Burada T peryotdur. Peryot ise bir kare dalga sinyalin HIGH ile LOW sürelerinin toplamıdır. O halde yalnızca high sayısını alıp frekans adına bir yere varamazsınız.
Yukarıdaki formül bize frekansın peryot hesaplayarak da bulunabileceğini gösteriyor. Hassas bir şekilde ölçülecek ise PORTB.0 kesmesi kullan. Önce sinyalin yükselen kenarında kesme oluştur. Bu kesmede TMR1 sayacını sıfırla ve kesmeyi düşen kenara çevir. ikinci kesme oluştuğunda TMR1 değerini al bir başka değişkene eşitle. Bu senin HIGH süren olacaktır. Kesmeyi yeniden yükselen kenara çevir ve TMR1'i sıfırlayıp kesmeden ayrıl. Yeniden kesme oluştuğunda TMR1 değerini alıp bir değişkene eşitle. Bu senin LOW süren olacaktır. Bu iki süreyi toplarsan mikro_sn cinsinden Peryodu bulursun. Bunu 1000'e bölersen ms cinsinden peryodu bulursun. Onuda 1000 e bölersen frekansı HZ cinsinden bulmuş olursun. Bu işlemlerde TMR1 sayacı 1/1 bölme oranı ile çalışmalıdır.
İşlemci frekansı 4 Mhz olmalıdır.

Ete
"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

ete

Sayım süresi hesabında her bir clk palsinin süresi esas alınır. 4Mhz kristal frekansından frekans önce 4 e bölünür. Bu gerçek program frekansıdır. 4Mhz=4.000.000 Hz dir. 4 e bölersek 1.000.000 hz eder. Bu 1 sn deki titreşim yada puls sayısıdır. Bu bilgiden clk palsinin bir peryodunu hesaplamamız gerekiyor. Peryotr (T)=1sn/F(hz) veya T=1000.000us/F(Hz) formülünden;

T=1.000.000/1.000.000=1 us olarak hesaplanır.

10 Mhz için hesaplayalım. 10/4=2,5 Mhz
1000.000/2.500.000= 0,4 us (400ns)

20 Mhz için hesaplayalım. 20/4=5 ve T=1000.000/5000.000=0,2 (200 ns)
olarak bulunur.

Ete

Powered by EzPortal