Programda 5 tane hata veriyor ben hiç birini bulamadım

zacnblnt

Üye
Katılım
7 May 2010
Mesajlar
210
Puanları
1
#include<16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000)
#use fast_io(b)
#define use_portb_lcd TRUE
#include <lcd.c>
int x;
float y;
char z;
void main()
{
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);

set_tris_b(0x00);
lcd_init();

x=10;
y=32.6;
while(1)
{
lcd_send_byte(0,0x0d);
printf(lcd_putc,"\f CCS C");
delay_ms(1000);
printf(lcd_putc,"\n DERLEYICISI");
delay_ms(1000);
lcd_gotoxy(1,2);
printf(lcd_putc,"\fX DEGERI=%d",x);
delay_ms(1000);
printf(lcd_putc,"\nY DEGERI=%f",y);
delay(1000);
printf(lcd_putc,"\fDIRENC");
delay_ms(1000);
z=lcd_getc(3,1);
printf(lcd_putc,"\%fc",z);
delay_ms(2000);


}


}
 
Aşağıda çalışan kodu yazıyorum.
Hataları bulup, değiştirdim.
1. hata: #fuses için NO DEBUG parametresi, onu kaldırdım.
2. hata: delay_ms(1000); yerine delay(1000); yazmışsın.
3. hata: printf(lcd_putc,"\f%c",z); yerine printf(lcd_putc,"\%fc",z); yazmışsın.


#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NOCPD
#use delay(clock=4000000)
#use fast_io(b)
#define use_portb_lcd TRUE
#include <lcd.c>
int x;
float y;
char z;

void main()
{
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);

set_tris_b(0x00);
lcd_init();

x=10;
y=32.6;

while(1)
{
lcd_send_byte(0,0x0d);
printf(lcd_putc,"\f CCS C");
delay_ms(1000);
printf(lcd_putc,"\n DERLEYICISI");
delay_ms(1000);
lcd_gotoxy(1,2);
printf(lcd_putc,"\fX DEGERI=%d",x);
delay_ms(1000);
printf(lcd_putc,"\nY DEGERI=%f",y);
delay_ms(1000);
printf(lcd_putc,"\fDIRENC");
delay_ms(1000);
z=lcd_getc(3,1);
printf(lcd_putc,"\f%c",z);
delay_ms(2000);
}
}
 
Aşağıda çalışan kodu yazıyorum.
Hataları bulup, değiştirdim.
1. hata: #fuses için NO DEBUG parametresi, onu kaldırdım.
2. hata: delay_ms(1000); yerine delay(1000); yazmışsın.
3. hata: printf(lcd_putc,"\f%c",z); yerine printf(lcd_putc,"\%fc",z); yazmışsın.


#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NOCPD
#use delay(clock=4000000)
#use fast_io(b)
#define use_portb_lcd TRUE
#include <lcd.c>
int x;
float y;
char z;

void main()
{
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);

set_tris_b(0x00);
lcd_init();

x=10;
y=32.6;

while(1)
{
lcd_send_byte(0,0x0d);
printf(lcd_putc,"\f CCS C");
delay_ms(1000);
printf(lcd_putc,"\n DERLEYICISI");
delay_ms(1000);
lcd_gotoxy(1,2);
printf(lcd_putc,"\fX DEGERI=%d",x);
delay_ms(1000);
printf(lcd_putc,"\nY DEGERI=%f",y);
delay_ms(1000);
printf(lcd_putc,"\fDIRENC");
delay_ms(1000);
z=lcd_getc(3,1);
printf(lcd_putc,"\f%c",z);
delay_ms(2000);
}
}
eyvallah bir de çalışan programı ccs de pic wizard dan yeni bir dosya açtığımda ve kopyala yapıştırda çalışmıyor açılan pencerelerde konfigürasyon ayarları yapmıyorum o yüzden olduğunu düşünüyorum onları genelde programda yazılımla yapıyorum sıkıntı ondan olabilir mi

http://www........... ismiburdan hatırladımgaliba ;)
 
Moderatör tarafında düzenlendi:
eyvallah bir de çalışan programı ccs de pic wizard dan yeni bir dosya açtığımda ve kopyala yapıştırda çalışmıyor açılan pencerelerde konfigürasyon ayarları yapmıyorum o yüzden olduğunu düşünüyorum onları genelde programda yazılımla yapıyorum sıkıntı ondan olabilir mi

http://www........... ismiburdan hatırladımgaliba ;)

Evet, doğru hatırlamışsınız.
Bilgi paylaşmak güzeldir, yeri önemli değil. ;)

Aygıt (device) ayarlarını proje başlangıcında da yapabilirsiniz.
Aynı zamanda yukarıdaki gibi tek dosya ile de yapabilirsiniz.
Ben yukarıdaki kodu tek dosya halinde derledim mesela.
O sizin o anki aciliyetinize bağlı.
 
Moderatör tarafında düzenlendi:
peki ccs c derleyicisinin başında konfigürasyonları kendimiz yapacaz diye belirtmemiz gerekiyormu acaba
mesela timer kesmelerini aktif ettiğinizde void main içinde yazılımla devre dışı (setup_timer_1(t1_disable) gibi) yazdığınızda bile timer1 kesmesi aktif olmuş oluyor.sizin dediğinizi yaptım hata verdi.ccs te eskiden yazılmış ve çalışmış olan bir arayüzde benimkodları koydum sorunsuz çalıştı
anlatabildim mi bilmiyorum ama kafayı yedim her zamanda bunu yapamayacağım için nasıl yapılacağını öğrenmek istiyorum.
ilginize teşekkürler...
 
Dediğim gibi tek dosya halinde yaparsanız o sorunu çözersiniz.
Benim yukarıda verdiğim derlemede öyle yaptım ve hiç hata vermedi.
 

Forum istatistikleri

Konular
128,210
Mesajlar
915,840
Kullanıcılar
449,989
Son üye
veyselknkc

Yeni konular

Geri
Üst