Picproje Elektronik Sitesi

DERLEYİCİLER => Microchip XC Serisi => Microchip XC8 => Konuyu başlatan: NicolaTesla - 30 Eylül 2018, 22:09:35

Başlık: PIC18F2550 CAPTURE MODÜLÜ
Gönderen: NicolaTesla - 30 Eylül 2018, 22:09:35
Herkese iyi akşamlar. xc8 ile frekans ölçümü için yazdığım program aslında çalışıyor fakat kafama takılan bir soru var.

#pragma config PLLDIV = 5      // PLL Prescaler Selection bits (Divide by 5 (20 MHz oscillator input))
#pragma config CPUDIV = OSC1_PLL2// System Clock Postscaler Selection bits ([Primary Oscillator Src: /1][96 MHz PLL Src: /2])
#pragma config USBDIV = 2      // USB Clock Selection bit (used in Full-Speed USB mode only; UCFG:FSEN = 1) (USB clock source comes from the 96 MHz PLL divided by 2)

// CONFIG1H
#pragma config FOSC = HS        // Oscillator Selection bits (HS oscillator (HS))


Config ayarlamalarının bir kısmı bu şekilde. Aslında kafamda soru işareti oluşturan kısım.

freq = (20000000.00) / (4.00 * 8.00 * ((double)t2 - (double)t1) / 16.00);

Programda hesabı yapan kodlardan bir alıntı yukarıdaki gibi.

Kafama takılan soru şu. Şimdi PIC'e bağladığım kristal 20MHz, config ayarlarında görüldüğü üzere bu frekansı HS modunda yani PLL'ye gerek duymadan kullanmaktayım.

#pragma config CPUDIV = OSC1_PLL2 burada giriş frekansını direkt olarak kullanabilmemiz gerekirken, yukarıdaki freq değişkeninde yer alan, 4'ü oraya eklemezsem yani PIC16 serisindeki gibi komut işlem hızını 4'e bölmezsem, ölçtüğüm frekans normalin tam 4 katı çıkıyor. Simulasyonu da proteus'ta değil kurduğum devrede yapıyorum. Kullandığım PIC'in veri sayfasına baktığımda da bu frekansın 4'e bölünmemesi gerekiyor. Bu konuda fikirlerinizi veya bilgilerinizi almak isterim.
Başlık: Ynt: PIC18F2550 CAPTURE MODÜLÜ
Gönderen: NicolaTesla - 02 Ekim 2018, 00:44:46
Konu hakkında fikir yürütebilecek kimse yok mu gerçekten?
Başlık: Ynt: PIC18F2550 CAPTURE MODÜLÜ
Gönderen: ertan - 03 Ekim 2018, 14:26:55
Merhaba;
 Bana kalırsa bu tarz durumlarda bu yöntemi yapman sağlıklı değil. PLL özelliğini kullanırsam işlemci kendi içinde bu olayı hallediyor. Veri sayfasında hangi alanda 4'e bölünmemesi gerektiği yeri bana yazar mısın?.