svsilence
Üye
- Katılım
- 21 Ara 2008
- Mesajlar
- 7
- Puanları
- 1
- Yaş
- 38
elimde pic c de yazılmış kod var arkadaşım yazı ccs c derleyicisinde derle çalıştır dedi ben indirdim bitane derleyici PCW diye aratıp bulduğumda compile dediğimde hata verdi
kod bu arakdaşım yazdım hata yoktur falan demişti acaba derleyici mi farklı olması gerekiyor lütfen yardım!!!
kod bu arakdaşım yazdım hata yoktur falan demişti acaba derleyici mi farklı olması gerekiyor lütfen yardım!!!
Kod:
#include <16f877A.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
#device ADC=10 // 10 bitlik ADC kullanılacağı belirtiliyor.
// Denetleyici konfigürasyon ayarları
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use rs232 (baud=9600, xmit=pin_C6, rcv=pin_C7, parity=N, stop=1)
#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.
#int_RB // PORTB de B4...B7 pinlerinde meydana gelen değişim kesmesi
void B_degisiklik () // Kesme fonksiyonu ismi
{
if (input(pin_b4)==0)// RB4 pini girişi okunuyor.
{
set_adc_channel(0); // AN0 ucundaki sinyal A/D işlemine tabi tutulacak
delay_us(20); // Kanal seçiminde sonra bu bekleme süresi verilmelidir
bilgi1=read_adc(); // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor
voltaj1=(0.001953125*bilgi1); // Dijitale çevirme işlemine uğrayan sinyalin gerilimi hesaplanıyor
printf("\fDijital1=%lu",bilgi1); // AN0 ucundaki sinyalin dijital karşılığı
printf("\nVoltaj1=%fV",voltaj1); // AN0 ucundaki sinyalin gerilim değeri
}
if (input(pin_b5)==0) // RB5 pini girişi okunuyor.
{
set_adc_channel(1); // AN1 ucundaki sinyal A/D işlemine tabi tutulacak
delay_us(20); // Kanal seçiminde sonra bu bekleme süresi verilmelidir
bilgi2=read_adc(); // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor
voltaj2=(0.001953125*bilgi2); // Dijitale çevirme işlemine uğrayan sinyalin gerilimi hesaplanıyor
printf("\fDijital2=%lu",bilgi2); // AN1 ucundaki sinyalin dijital karşılığı
printf("\nVoltaj2=%fV",voltaj2); // AN1 ucundaki sinyalin gerilim değeri
}
if (input(pin_b6)==0) // RB6 pini girişi okunuyor.
{
set_adc_channel(2); // AN2 ucundaki sinyal A/D işlemine tabi tutulacak
delay_us(20); // Kanal seçiminde sonra bu bekleme süresi verilmelidir
bilgi3=read_adc(); // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor
voltaj3=(0.001953125*bilgi3); // Dijitale çevirme işlemine uğrayan sinyalin gerilimi hesaplanıyor
printf("\fDijital3=%lu",bilgi3); // AN2 ucundaki sinyalin dijital karşılığı
printf("\nVoltaj3=%fV",voltaj3); // AN2 ucundaki sinyalin gerilim değeri
}
if (input(pin_b7)==0) // RB7 pini girişi okunuyor.
{
set_adc_channel(3); // AN3 ucundaki sinyal A/D işlemine tabi tutulacak
delay_us(20); // Kanal seçiminde sonra bu bekleme süresi verilmelidir
bilgi4=read_adc(); // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor
voltaj4=(0.001953125*bilgi4); // Dijitale çevirme işlemine uğrayan sinyalin gerilimi hesaplanıyor
printf("\fDijital4=%lu",bilgi4); // AN3 ucundaki sinyalin dijital karşılığı
printf("\nVoltaj4=%fV",voltaj4); // AN3 ucundaki sinyalin gerilim değeri
}
delay_ms(1000); // 1 sn gecikme veriliyor.
output_b(0xFF); // B portu çıkışı komple lojik1
}
unsigned long int bilgi1,bilgi2,bilgi3,bilgi4; // İşaretsiz 16 bitlik tam sayı tipinde değişken tanımlanıyor
float voltaj1,voltaj2,voltaj3,voltaj4; // ondalıklı tipte voltaj isminde değişken tanıtılıyor
//********** 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_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı
setup_adc(adc_clock_div_32); // ADC clock frekansı fosc/32
setup_adc_ports(AN0_AN1_AN2_AN3_AN4);
enable_interrupts(INT_RB); // RB çevrimi bitti kesmesi tanıtılıyor
enable_interrupts(GLOBAL); // Tüm kesmeler aktif
set_tris_b(0xFF); // B portu komple giriş
while(1) // sonsuz döngü
{
enable_interrupts(INT_RB); // RB çevrimi bitti kesmesi tanıtılıyor
}
}
Moderatör tarafında düzenlendi: