CCS TIMER2 10MHZ KRISTAL ILE 1 MİLİSANİYE ?

Başlatan saucompeng, 15 Ağustos 2010, 15:08:49

saucompeng

Selam Arkadaşlar;

Ccs c de 18F serisi pic programlıyorum. Timer2 nin 1 milisaniyeye ayarlanması lazım. Bunun için setup_timer2(????) değeri ne olmalıdır?

Kitapta verilen formüle göre yaptığımda tam olarak sonuç alamadım. Duyduğuma göre 18f serisinde 10 mhz kristal kullanınca pll ile 40 mhz oluyormuş. Bu durumda Fosc 10mhz/4 mü olucak 40mhz/4 mü olucak?

Saygılarımla...

www.teknikyazi.com --üşenme,erteleme,vazgeçme...

radres

PLL kısmına ayarladıysan 40Mhz'e çıkar. Ama ayarlamadıysan normal kristal değerinde çalışır.

saucompeng

www.teknikyazi.com --üşenme,erteleme,vazgeçme...

radres

Bu arada yazdığın timer2 kodunu göndersene bakalım.

saucompeng

setup_timer_2(T2_DIV_BY_16,156,1);
enable_interrupts(int_timer2);
enable_interrupts(GLOBAL);
www.teknikyazi.com --üşenme,erteleme,vazgeçme...

radres

Peki timer2'yi kaçtan başlatıyorsun. Yani set_timer2(); fonksiyonundaki değerin kaç?

saucompeng

Başlangıç değeri vermedim default 0 dan başlıyor
www.teknikyazi.com --üşenme,erteleme,vazgeçme...

radres

10Mhz kristal kullanıyorsan, PLL kapalı ise verdiğin değerlere göre 1,0048 msn'de bir kesme oluşması lazım. Denemelerinde ne çıkıyor.

saucompeng

Zaman olarak ölçemiyorum fakat 1 saniye , gereğinden fazla çıkıyor..
www.teknikyazi.com --üşenme,erteleme,vazgeçme...

radres

Gerçek ortamda deniyorsun değil mi? Simülasyonda değil?

saucompeng

Simülasyonda deniyorum :/ Ondan olma ihtimali var mı?
www.teknikyazi.com --üşenme,erteleme,vazgeçme...

radres

simülasyonda altta yazan zaman her zaman doğru olmuyor. İşlemcinin yüklenmesine bağlı olarak yanlış değerler verebiliyor. Ama sen söyle yap. Kesme fonksiyonunda her gelişte çıkışın birini toggle yap. Yani 0 ise 1, 1 ise 0 olsun. Bu çıkışa da frekansmetre bağla simülasyon programında. Çıkan frekansa göre işlemin doğru olup olmadığını görebilirsin.

saucompeng

Tamamdır teşekkür ederim, bi deneyeyim...
www.teknikyazi.com --üşenme,erteleme,vazgeçme...