28 Ocak 2023 Cumartesi

Timer0 frekans metre ccsc compiler

 Timer0 frekans metre ccsc compiler. %1 %2 kayıpla doğru ölçüm yapıyor. program içindeki delay ile doğru sonucu elde edebilirsiniz. Çeşitli programlarda kullanabilirsiniz.

#include <12f683.h>

#fuses INTRC_IO,NOWDT,PUT,NOPROTECT,noMCLR      

#use delay(internal=4M)                         

#use RS232(baud=9600,xmit=pin_a4)            

int8 lc=0;                              //Timer0 kesintisinden döngü sayacı

int16 f=0;                              //frekans

int8 tc=0;                              //timer0 sayıcı

#int_timer0                              //timer0 kesme

void isr_timer0(void) {                //256 sayılık döngü sayısı

 set_timer0(0);

   lc=lc+1;                            //Timer0 girişinin (1 sayı=1 Hz )

}

//================================

void main()

{

setup_comparator(NC_NC_NC_NC);               //disable comaparators

setup_adc_ports(NO_ANALOGS);               //disable ADC pinler

setup_timer_0 (RTCC_DIV_1 | RTCC_EXT_L_TO_H);   //ön ölçekleyici yok, harici kaynak, yükselen kenar

set_timer0(0);

enable_interrupts(GLOBAL);                  //enable interrupts

  

while(TRUE)                              

  {

      lc=0;                              //Döngü sayıcı

   tc=0;                              //timer0 sayıcı

   f=0;                              //frekans

   set_timer0(0);                        //ön ayar timer0

   enable_interrupts(int_timer0);            //timer0 için yazılım 'başlangıç'

   delay_ms(985);                        //1 saniye bekleme

   disable_interrupts(Int_timer0);            //timer0 için yazılım 'sonu'     

    tc=get_timer0();                     //get tiemr0 değer

   f=(lc*256) + tc;                     //hesaplama frequency

   printf("Dongu:lc %u  Timer:tc %u  frekans: %lu \n\r",lc,tc,f );

   }                                  



Hiç yorum yok:

Yorum Gönder

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