Picproje Elektronik Sitesi

DERLEYİCİLER => MikroC - PIC => Konuyu başlatan: cscodes - 13 Ağustos 2014, 14:26:09

Başlık: Dahili Oscillator hızını ayarlayamadım PIC12F1822
Gönderen: cscodes - 13 Ağustos 2014, 14:26:09
İyi günler arkadaşlar, ben hobi olarak mikroC ile PIC programlamayı öğrenme aşamasındayım.

PIC12F1822 ile led blink uygulaması oluşturdum, fakat PIC 500KHz hızda çalışıyor internal oscillator seçildiğinde, bunu 4MHz'ye çıkartmak istiyorum.

Datasheet okumayı ve uygulamayı henüz tam çözemediğim için anlayabildiğim kadar denedim ama olmadı. ISIS'te devre hep 500KHz de çalışıyor. mikroC edit project'ten hızı 4Mhz ayarladığımda, kodlardan ayarlanmadığı için delay_ms(1000) 1sn olacağına 8sn oluyor. Denediğim kodlar aşağıda yardımcı olabilir misiniz lütfen.

datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/40001413D.pdf (http://ww1.microchip.com/downloads/en/DeviceDoc/40001413D.pdf)

mikroC ve Proteus dosyaları: https://www.dropbox.com/s/3irt28qj690m5fy/led%20blink%20intosc.zip (https://www.dropbox.com/s/3irt28qj690m5fy/led%20blink%20intosc.zip)

void main() {
     //OSCTUNE=0b011111;

     OSCCON.SCS0=0;
     OSCCON.SCS1=0;
     
     OSCTUNE.IRCF0=1;
     OSCTUNE.IRCF1=1;
     OSCTUNE.IRCF2=1;
     OSCTUNE.IRCF3=1;
     
     TRISA=0b1111110;
     PORTA=0;

     while(1){
         PORTA.B0=1;
         delay_ms(1000);
         PORTA.B0=0;
         delay_ms(1000);
     
     }
}


Konu onaylanana kadar çözdüm arkadaşlar. Kendim çözünce baya zevkli oluyor :)

Datasheet'te
5.6 Oscillator Control Registers ->
REGISTER 5-1: OSCCON: OSCILLATOR CONTROL REGISTER bölümüne geliyoruz

bit 7 = 4x PLL aktif ediyor
bit 6-3 = hız ayar bitleri
bit 2 = boş 0
bit 1-0 = 10 olarak ayarlanıyor

örnek:
OSCCON = 0b00110010;// 250KHz 0b-0-0110-0-10 şeklinde