18f4550 Timer0 sorunu

Başlatan elektronikDelisi, 16 Mart 2016, 16:14:22

elektronikDelisi

Merhabalar,

USB HID Bootloader PIC18F4550 Deney Kiti kullanıyorum.


Kart üzerinde 20Mhz lik kristal var.
TMR0 kesmesi kullanarak 5 saniye de bir E portunda bir ledi toogle yapmak istiyorum.
Proteus da simüle ettiğim zaman gayet güzel çalışıyor. Ama kit üzerinde deneme yaptığım zaman 2-3 saniye arasında değişiyor.

MikroC de harici 20Mzh lik kristali tanımlayabilmem için ne yapmam gerekiyor? Ya da hatam nerede?

Fuses ayarları ve Kod aşağıda ki gibidir.
#define LED_0  LATE0_bit
int cnt;

 int i=0;
 void interrupt(){
  if(TMR0IF_bit){ 
  cnt++;
  TMR0L=158;
  TMR0IF_bit=0;
  }

}
 void main() {

 //ADC
   ADCON0 =0x09;   //AN2
   ADCON1 &= 0xF0;
   CMCON |= 7;

   //

   TRISE=0;
   PORTE=0x00;
   //

   //TMR0
   cnt=0;
   T0CON=0xC7;
   INTCON=0xC0;
   TMR0IE_bit=1;
 //  TMR0L=158;
   //

  while(1){

      
       if(cnt>=1000)
       {
          LED_0=~LED_0;
          cnt=0;
     
       }

}
}






Teşekkür Ederim.
aramızda bir elektrik var..

selimkoc

#1
pll ile 48mhz de çalışıyor. çalışma frekansı 48mhz olacak

mesaj birleştirme:: 16 Mart 2016, 19:19:19

http://i.hizliresim.com/Rk03po.png

elektronikDelisi

Çok teşekkür ederim. Çalıştı :)
aramızda bir elektrik var..