Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

Fosc hesablama

Başlatan bybik, 27 Mayıs 2011, 08:39:10

bybik

Arkadaşlar timer1 kullanarak bir uygulama yapmaya çalışıyorum.Anlamadığım bir bölüm var timer1 süresi hesaplanırken kullanılan fosc degeri nasıl bulunuyor.Ben şimdi 20 mhz kristal kullanıyorsam 20mi olacak yoksa programdaki 48 mhz komutu yüzünde 48 mi?


#include <18F4550.h>
#device adc=10
#fuses HSPLL,USBDIV,PLL5,CPUDIV1,VREGEN,NOWDT,NOPROTECT,NOLVP,NODEBUG
#use delay(clock=48000000)   şimdi burada benim fosc degerim 48 mi

Tagli

Programdaki komutla ilgisi yok, tamamen config ayarları ile ilgili. Eğer ayarları 48 MHz hız için yaptıysan (CCS C'nin config ayarlarını bilmediğimden kontrol edemiyorum) Timer 1 de buna bağlı olacaktır. Elbette, 48 MHz'de hızın 12 MIPS olduğundan, bu da eğer prescaler 1 ise, Timer 1'in 1 us'de 12 artacağı anlamına gelir.
Gökçe Tağlıoğlu

bybik

config ayarlarım yazıyor. PLL5,CPUDIV1   ve 20 mhz kristal kullandım.

Tagli

Sen yazmışsın yazmasına ama sabitlerin anlamını ben bilmiyorum :) PLL5 belli, PLL girişi için 20'yi 5'e bölüyor ve ihtiyaç duyulan 4 MHz elde ediliyor, o kısmı anladım. Ama CPUDIV1'in neye karşılık geldiğinden emin değilim. Bu ifade PLL çıkışı olan 96 MHz'in kaça bölüneceğini belirliyor olmalı. Eğer CPUDIV1 CCS C'de 2'ye karşılık geliyorsa PIC 48 MHz'de çalışıyor demektir. CCS C bilmediğim için o kısmı kontrol edemedim, bunu anlatmak istemiştim. Kod C18'de yazılıyor olsa idi, aynı sonuca CPUDIV = OSC1_PLL2 yazılarak ulaşılırdı.
Gökçe Tağlıoğlu

bybik

Hmm teşekürler sağolun.Ccs bilen birini beklicez artık :D