ccs c ile devir sayıcı

seckinalan

Üye
Katılım
9 Mar 2009
Mesajlar
380
Puanları
1
merhaba arkadaşlar motor devir sayıcı bir devre yapacağım işin donanımsal kısmı sorun yok. Picbasc pro ile devir sayma işlemini yaptırıyorum. benim istediğim ccsc ile bu işi nasıl hallederiz... ?

PBP COUNT komutu kullanılmışç. C de nasıl yapabilirim
4mhz osilator. 16f84üm mevcut.


Cevaplayanlara teşekkürler cevaplamayanlara teşekkürler
 
İnan ben de çok merak ediyorum, bende şuan o işle uğraşıyoru...
 
donanımda problem yoksa timer0 ı sayıcı olarak kurup pals sayacaksın ama istersen kodunu yazabilirim.
 
baba23 iki günden beri bunu arıyorum, eğer örnek bir kod yazarsanız çok sevinirim. Benim gibi amatörler için iyi bir gelişim süreci olacaktır...

Şimdiden teşekkürler...
 
/******************************************************
PIC16F877 ile Timer0 Uygulaması-2
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(a) //Port yönlendirme komutları A portu için geçerli
#use fast_io(b) //Port yönlendirme komutları B portu için geçerli

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

//****************** Timer0 Kesmesi *****************************
#int_timer0 // Timer0 kesmesi
void timer0_kesme () // Kesme fonksiyonu ismi
{
set_timer0(254); // TMR0 değeri belirleniyor

sayi++; // sayi değeri 1 arttrılıyor
output_b(sayi); // sayi değeri B portuna gönderiliyor

if (sayi==15) // sayi değeri 15 olunca sıfırla
sayi=0;
}

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

void main ( )
{
setup_psp(PSP_DISABLED); // PSP birimi devre dışı
setup_spi(SPI_SS_DISABLED); // SPI 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_a(0x10); // RA4 pini giriş
set_tris_b(0x00); // B portu komple çıkış

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

setup_timer_0(RTCC_EXT_H_TO_L | RTCC_DIV_2); // Timer0 ayarları yapılıyor
set_timer0(254); // 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ü

}


bu internetten indirdiğim serdar çiçek hocamın yazdığı bir örnek program detay verirsen hemen yazabşiliriz programını kardeşim kolay gelsin.
 
baba23 ilgin için çok teşekkür ederim, ancak aynı örneği daha dün aldığım kitapta inceledim, denedim tamam çalışıyor ama bunu motorun devrini saymak için uyarlayamadım. O konuda da yardımcı olursan sevinirim. Basit bir örnek kod yazabilirsen ben biraz daha araştırır geliştirebilirim.

Şimdiden teşekkürler...
 
şu anda pc mde ccs kurulu olmadığından tam kodu yazamayacağım ama ccs de şu var..düşen puls yada çıkan pals kenarını yakalayabilen komutlar var.ccs in kendi helpinden bu kodları bulabilirsin.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…