Elektrotekno.com Ana Sayfa || Pic ve diğer işlemci ve denetleyiciler ile yapılmış devreler, projeler


fonksiyondan çıkamıyorum

Kayıt: 31 Tem 2008
Mesajlar: 90

Offline
cseb
Tarih: 26 06 2012 21:39

arkadaşlar aşağıdaki gibi bir fonksiyon yazdım. fonksiyon uart tan gelen bilgileri kontrol ederek kendini tamamlaması ve main de kaldığı yere geri dönmesi gerekiyor, ancak döndüremiyorum. çözümü ne olabilir?

Kod
 void incoming1(void){

  if(getc()==id1){
    goto s1;}
    s1:
    while(true){
    if(kbhit()){
    if(getc()==id2){
    goto s2;}}}
    s2:
    while(true){
    if(kbhit()){
    if(getc()==id3){
    goto s3;}}}
    s3:
    while(true){
    if(kbhit()){
    if(getc()==id4){
    goto s4;}}}
    s4:
    while(true){
    if(kbhit()){
    if(getc()==0x55){
   if(f==1){ output_high(pin_a6);output_low(pin_a7); goto s5;}
   if(f==2){ output_low(pin_a6);output_high(pin_a7);goto s5;}
 
   }
    if(getc()==0x45){ output_low(pin_a6);output_low(pin_a7);goto s5;}
   }
   }
  s5:
delay_ms(1);
}



Reklamlar
Kayıt: 31 Arl 2007
Mesajlar: 231
Konum: İstanbul
Offline
emrelyus
Tarih: 27 06 2012 15:22

.
.
}
}
s5:
delay_ms(1);

return; // bunu ekle...

}
Başa dön
Kayıt: 24 Tem 2011
Mesajlar: 53

Offline
Yixit
Tarih: 27 06 2012 18:19

main fonksiyonunun uzerine bir fonksiyon tanımla
fazladan bir 'go to' fonksiyonu daha ekle son islem satırına gectikten sonra ve dondurecegin yerin ismini mainde tanımladıgın fonksiyon olarak yazarsan olabilir..
Başa dön
Kayıt: 03 Arl 2006
Mesajlar: 169

Offline
the_dalga
Tarih: 30 06 2012 21:24

Yazdıklarım yanlişsa özür dileyerek sunu söylüyorum>>
Anladığım kadarıyla
while(true){
if(kbhit()){
if(getc()==id2){
goto s2;}}}
da tutuyorsun olayı , id2 gelmedikçe orda kalıyor şart sağlanmıyor while den çıkamıyor. Ayrıca while döngüsünün dısına ben yanliş bilmiyorsam (ki bu CCS C derleyicisi) goto ile çıkmak sağlıklı değil.
Sen zaten while ile orda hapsadiyorsun.
Bence oradan goto s2 leri vs sil onun yerine break yaz , derleyici CCS C ise return yazmasandan fonksiyon sonunda dönecektir.

Son olarak idl nedir? #define ile bir karakter mi tanımladın , yoksa idl genel degisken icine bir karakter mi atadın?

Fikir vermek istedim kolay gelsin...
Başa dön
Kayıt: 31 Tem 2008
Mesajlar: 90

Offline
cseb
Tarih: 03 07 2012 21:16

idl diye bir değişken tanımlamadım aslında id1,id2,id3 ve id4 değişkenleri tanımladım. yanlış yazılmış olabilir.
dediğiniz gibi id2 gelmedikçe orda kalıyor. bende zaten sorunu break ile çözdüm ama bu sefer başka sorunlar çıktı. uart tan gelen datayı sağlıklı alamadığım için bunu int_rda kesmesi kullanarak aşmaya çalıştım.
cevaplar için teşekkürler.
Başa dön



fonksiyondan çıkamıyorum


Benzer Konular

Sitemize üyelik ve içeriğin indirilmesi tamamen ücretsizdir. Sitemizde paylaşılan tüm dokümanlar (Tezler, makaleler, ders notları, sınav soru cevaplar, projeler) paylaşımcıların bireysel çalışmaları olup telif hakları kendilerine aittir ya da açık bir şekilde kamusal alana yerleştirilmiş dokümanların birer kopyalarıdır. Kişilerin bireysel çalışmalarını sitemizde yüklemesinde, sitemizde paylaşıma teşvik eden puanlama sisteminin de etkisi büyüktür. Bunlara rağmen hala size ait olan ve burada bulunmasına izin vermediğiniz dokümanlar varsa iletişim bölümünden yöneticilere bildirmeniz durumunda derhal silineceklerdir.
Powered by phpBB | Translated by phpBB Turkiye | Ads by Google Adsense | Design by Crazy Bat based