Sayfalar

Menü

2 Temmuz 2022 Cumartesi

Timer0 sayıcı ve hesaplama ccs compiler

Timer0 sayıcı hesaplama ccs compiler

Kesme oluşma sayısı = (256 - TMR0) * (Bölme oranı)

kesme oluşma sayısı = (256 - 254) * (2) = 4  Dört kere butona basınca 1 kesme oluşacak

Bölme oranı (Prescaler) = RTCC_DIV_2 , RTCC_DIV_4 , RTCC_DIV_8 , RTCC_DIV_16

RTCC_DIV_32 , RTCC_DIV_64 , RTCC_DIV_128 , RTCC_DIV_256

Sabit değer 256 sayısı 8 bitlik zamanlayıcı olduğu için bu değer sabit alınıyor.

 #include <16f877.h>    

#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=4000000)

#use fast_io(a) 

#use fast_io(b) 


int sayi=0; 


#int_timer0  // Timer0 kesmesi

void  timer0_kesme ()  

{

      set_timer0(254);   

       sayi++; 

       output_b(sayi);   

   if (sayi==15)   

      sayi=0;

}


void main ( )

{

   set_tris_a(0xff);

   set_tris_b(0x00);   

   output_b(0x00); 

   output_a(0xff);


   setup_timer_0(RTCC_EXT_H_TO_L | RTCC_DIV_2); 

   set_timer0(254);   

   enable_interrupts(INT_timer0); 

   enable_interrupts(GLOBAL);    


   while(true)

   {

   }

 }




Hiç yorum yok:

Yorum Gönder

Her yorum bilgidir. Araştırmaya devam...