Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

Else hatası

Başlatan ercanaslan, 21 Mart 2013, 21:04:29

ercanaslan


Sayın Hocalarım yazılımda else kodunu kullandığım zaman EROR 51 diye bir hata veriyor bunun sebebi ne olabilir teşekkür ediyorum.

[/code]
#include <16f877.h>     // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD // Denetleyici konfigürasyon ayarları


#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




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(0b00000001);    // RA0 ucu giriş olarak ayarlandı.
   set_tris_b(0x00);    // RB0 portu tümüyle çıkış olarak ayarlandı.
   output_b(0x00);


  basla:
  if (input(pin_a0));
  output_high(pin_b0);
  else output_low(pin_b0);
   goto basla;            // basla etiketinin olduğu yere gidilir.
}

Klein

if satırındaki noktalı virgülü kaldır.

ercanaslan

Hocam büyüksün :D aklımı yemek üzereydim Teşekkür ederim ... Bütün if else komutları için geçerlimi peki bu

Klein

Notalı virgül, bu komut buraya kadar demektir. Noktalı virgülden sonraki komutlar ,yeni bir satır gibi işlem görür.   
if ifadesinden sonra ";" işareti koyduğunuz için , if şartı noktalı virgüle karaki kısmı kapsıyor. 
alttaki
output_high(pin_b0);
satırı if şartından bağımsız bir komut gibi işleniyor. Doğal olarak if ifadesi ile else ifadesi arasında başka bir komut olduğu için,
else ifadesine hata veriyor.

if ve else ifadelerini aşağıdakiler gibi kullanabilirsiniz.
if(şart)  komut;
else komut;

if(şart) komut; else komut;


if(şart){
komut
komut
...
...
}
else{
komut
komut
...
...
...
}

if(şart) komut;
else{
...
...
}  


if(şart){
...
...
} else komut;

vedo35

Verdiginiz bu tuyo kismini ogrendigim iyi oldu tesekkurler. ;)
Biliyormusun dedi, ben ne yaptiysam kader icabi yaptim dedi. Ben gene sustum.... Kimbilir sende belki kaderin memurusun vazifeni yapiyorsun dedi.

mehmet

#5
Biraz C kaynaklarını okuyup araştırsak
daha verimli çalışmaz mıyız?

Ek: http://www.kadifeli.com/fedon/stdcprtr.php?2_4
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

ercanaslan

Verdiğiniz bilgiler için teşekkürler.

Okan AKÇA