CCS C ile Capture Modu Uygulaması

pr_01_37_max

 

/******************************************************
 PIC16F877 ile Capture Modu Uygulaması
 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
#use fast_io(c) //Port yönlendirme komutları C portu için geçerli

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

//*********** CCP1 KESMESİ ******************
#INT_CCP1 // INT_CCP1 kesmesi fonksiyonu
void yakala1_kesmesi ()
{
 i++; // i değerini 1 arttır
 output_b(i); // i değerini B portuna gönder
}

//*********** CCP2 KESMESİ ******************
#INT_CCP2 // INT_CCP2 kesmesi fonksiyonu
void yakala2_kesmesi ()
{
 if(i==0) // Eğer i değeri sıfırsa
 i=1; // i değeri içeriği 1 olsun

 i--; // i değerini 1 azalt
 output_b(i); // i değerini B portuna gönder
}

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

void main ( )
{
 setup_psp(PSP_DISABLED); // PSP birimi 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ışı

 set_tris_b(0x00); // B portu komple çıkış
 set_tris_c(0x07); // RC0, RC1 ve RC2 pini giriş

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

 enable_interrupts(INT_CCP1); // INT_CCP1 kesmesi aktif yapılıyor
 enable_interrupts(INT_CCP2); // INT_CCP2 kesmesi aktif yapılıyor
 enable_interrupts(GLOBAL); // Aktif edilen kesmelere izin ver

 setup_ccp1(CCP_CAPTURE_DIV_4); // CCP1 kesmesi her 4 yükselen kenarda 1 yakalama yapacak
 setup_ccp2(CCP_CAPTURE_RE); // CCP2 kesmesi her yükselen kenarda 1 yakalama yapacak

 CCP_1_HIGH=0x00; // CCPR1H kaydedicisi sıfırlanıyor
 CCP_1_LOW=0x00; // CCPR1H kaydedicisi sıfırlanıyor

 CCP_2_HIGH=0x00; // CCPR2H kaydedicisi sıfırlanıyor
 CCP_2_LOW=0x00; // CCPR2H kaydedicisi sıfırlanıyor

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

Capture Modu Uygulaması

Bu yazı CCS C Örnekleri kategorisine gönderilmiş ve , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.