Timer0 uygulaması

Niko98

Üye
Katılım
24 Kas 2020
Mesajlar
10
Puanları
1
Yaş
26
arkadaşlar selamlar ben timer0 kullanmadan 7 segment bir sayıcı yaptım. burada tek,çift ve rakam olarak sayılar sayıyor. program böyle güzel çalışıyor. peki ben bunu timer0 ile delay kullanmadan nasıl yaparım? hesaplamaları yapabiliyorum fakat bir türlü fonksiyonda yazamadım. mesela 5 sn de bir nasıl yakarım timer0 ile? teşekkürler
Kod:
#include <denememain.h>

#FUSES NOWDT              //Watch Dog Timer Kullanma

#FUSES XT                 //Kristal  Osilatör ile CLKOUT

#FUSES NOPUT              //Power Up Timer Kullanma

#FUSES NOPROTECT          //Rom'a Yazılan Veriler Okunabilir

#FUSES NOBROWNOUT         //Brownout Reset Kullanma

#FUSES NOLVP              //Düşük Gerilimler ile Programlamayı Kapt

#FUSES NOCPD              //Data EEPROM Korumasız

#FUSES NOWRT              //Program Belleği Yazmaya Açık

#FUSES NODEBUG            //ICD için Hata Ayıklama Modu Kapalı



#use delay(clock=4000000)



#define buton pin_A0

#use fast_io(c)

int i=0;



const int  tek[5]={0x3F,0x5B,0x66,0x7C,0x7F};

const int cift[5]={0x06,0x4F,0x6D,0x07,0x6F};

const int  rakam[5]={0x77,0x39,0x79,0x71,0x0E};

void main()

{



   setup_psp(PSP_DISABLED);

   setup_adc_ports(NO_ANALOGS);

   setup_adc(ADC_OFF);

   setup_timer_1(T1_DISABLED);

   setup_timer_2(T2_DISABLED,0,1);

   setup_CCP1(CCP_OFF);

   setup_CCP2(CCP_OFF);





set_tris_c(0x00);

output_c(0x00);



   while(1)

   {

         for(i=0;i<=5;i++)

            {

               output_c(cift);

               delay_ms(200);

           }

         for(i=0;i<=5;i++)

            {

               output_c(tek);

               delay_ms(200);

   }

      for(i=0;i<=5;i++)

            {

               output_c(rakam);

               delay_ms(200);



}

  

   }



}
 
Moderatör tarafında düzenlendi:
Kod:
byte i;

#INT_TIMER0

void timer0_isr(void)

{

   clear_interrupt(INT_TIMER0);

   set_timer0(99);

   i++;

   if(i ==50)

   {

      i = 0;

 

Kodunu buraya yaz









   }

}







void main()

{

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_128); 

   set_timer0(99);         

   clear_interrupt(INT_TIMER0);       

   enable_interrupts(INT_TIMER0);     

   enable_interrupts(GLOBAL);       

 



   while(TRUE) ;                           

}
 
Moderatör tarafında düzenlendi:
Çok Teşekkür ederim çalıştı program saolun :)
 

Forum istatistikleri

Konular
127,950
Mesajlar
913,850
Kullanıcılar
449,597
Son üye
CTure

Yeni konular

Geri
Üst