Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

Pic CCS C timer0 sorunu

Başlatan pikçi, 12 Mayıs 2015, 18:00:08

pikçi

/******************************************************
      PIC16F877 ile Timer0 Uygulaması-1
      PIC PROG/DEKA     : Port B jumper'ı LED konumunda olmalı
*******************************************************/
#include <16f877.h>     // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.

// Denetleyici konfigürasyon ayarları
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.

#use fast_io(b) //Port yönlendirme komutları B portu için geçerli

int i=0; // Tamsayı tipinde değişken tanımlanıyor

//****************** Timer0 Kesmesi *****************************
#int_timer0  // Timer0 kesmesi
void  timer0_kesme ()   // Kesme fonksiyonu ismi
{
    set_timer0(60);   // TMR0 değeri belirleniyor
    i++;   // i değeri 1 arttırılıyor
    if (i==10)  // i değeri 10'a eşitse RB0 çıkışı lojik-1 olsun
       output_high(pin_b0);
    if (i==20)  // i değeri 20'ye eşitse RB0 çıkışı lojik-1 olsun ve i değeri sıfırlansın
       {
          output_low(pin_b0);
          i=0;
       }
}

/********* ANA PROGRAM FONKSİYONU********/

void main ( )
{
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_adc_ports(NO_ANALOGS);    // ANALOG giriş yok
   setup_adc(ADC_OFF);             // ADC birimi devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı


   set_tris_b(0x00);   // B portu komple çıkış

   output_b(0x00);     // B portu çıkışı ilk anda sıfırlanıyor

   setup_timer_0(RTCC_INTERNAL | RTCC_DIV_256); // Timer0 ayarları yapılıyor
   set_timer0(60);   // TMR0 değeri belirleniyor


   enable_interrupts(INT_timer0); // int_timer0 kesmesini aktif yapar
   enable_interrupts(GLOBAL);     // Aktif edilen kesmelere izin ver

   while(1);   // Sonsuz döngü

 }

[/url][/img]

Selamlar arkadaşlar.Pic ccs c kitabındaki(Serdar Çiçek) timer0 1. uygulamasında kitapta 0.5 sn yanıp 0.5 sn sönecek diyor.Ama isis te çalıştırdığım zaman 5sn yanıp 5sn'ye sonra sönüyor bunun sebebi nedir bilen varmı?

Salih

Isis dekin PIC in çalışma frekansını 4Mhz yaptın mı?

pikçi


pikçi


RaMu

Isis çalışırkenpencerenin en alt kısmında
animating yazan yerdeki süreye bak,
birde cpu kullanımına,
buradaki süre programın gerçekte çalışsa geçecek süreyi gösterir.

Bence buradaki süreye bakınca 0.5 saniye yanıp 0.5sn söndüğünü göreceksin.
Problem yok yani.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

pikçi

 :D anladım.. yardımınız için sağ olun