Dahili Oscillator hızını ayarlayamadım PIC12F1822

Başlatan cscodes, 13 Ağustos 2014, 14:26:09

cscodes

İ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

mikroC ve Proteus dosyaları: 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