Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

ccs döngü sorunu yardım

Başlatan elmariacci, 25 Mart 2013, 19:39:39

elmariacci

arkadaşlar a portuna bağlı butona bi kere basinca nabzi 6 saniye sonra gosteriyor .

şimdi bu programa oyle bi değişiklik yapmaliyim ki butona sadece ilk kez basilacak ondan sonra enerjiyi kesinceye kadar yani sonsuz döngü gibi başa sarip nabzi olçecek.

ne yapmaliyiim



#include <16F628A.h>

#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT

#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.



#define use_portb_lcd TRUE

#include <lcd.c>   // lcd.c dosyası tanıtılıyor

int8 i=0, toplam=0;
//int deger=0;


void main()
{
   setup_timer_1(T1_DISABLED);
   
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   
   setup_timer_0(RTCC_EXT_H_TO_L | RTCC_DIV_1);
   
   set_tris_a(0x11);
   
   lcd_init();
   
   printf(lcd_putc,"\f  NABIZ OLCER  ");
   
  
   printf(lcd_putc,"\f     HAZIR!   ");
   
   while (true)
   {  
   
   x:
   if(input(pin_a0))
     { goto x;}   // butona basılmamıssa 1 dir. butonu tekrar kontrol etmek için x 'e git
     
      

      printf(lcd_putc,"\f  HESAPLANIYOR ");
      set_timer0(0);
            
      delay_ms(10000); 
         
      i = get_timer0();
         
      toplam = i * 6;
         
      printf(lcd_putc,"\f NABIZ=%d nn/dk",toplam);
   
   }
}

elmariacci

tamam arkadaşlar sorunu çözdüm.while döngüsünü if den sonra kullandim oldu.bu kadar basitmiş. :)

arslan74

Alıntı yapılan: elmariacci - 26 Mart 2013, 00:13:37
tamam arkadaşlar sorunu çözdüm.while döngüsünü if den sonra kullandim oldu.bu kadar basitmiş. :)

C kodunda mümkün olduğunca goto kullanmamaya çalış.

örneğin:
x:
   if(input(pin_a0))
     { goto x;} 



Yerine goto suz yapabilirsin.

   while(input(pin_a0))
     { ;} 


şeklinde de olabilir.

Mucit23

Alıntı YapC kodunda mümkün olduğunca goto kullanmamaya çalış.

Basicden kalan bir alışkanlığım

azcık zora gelsem goto kullanıyorum. Bunun zararı nedir?

mehmet

Meşhur bank olayı bildigim
kadarıyla. Yakın sıçramalarda pek
sorun yaşanmaz. Ancak uzak ki bank
değişen uzun atlamalarda goto bank
değişimini dikkate almadan sıçrama
yapmaya çalışır. Bir başka değişle
asm olarak direk goto komutuna
dönüştürülmüş olmakta.
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"

sadogan

goto yapısalığı bozuyor
programın okunabilirliğini azaltıyor.

elmariacci

Alıntı yapılan: arslan74 - 26 Mart 2013, 00:50:03
C kodunda mümkün olduğunca goto kullanmamaya çalış.

örneğin:
x:
   if(input(pin_a0))
     { goto x;} 



Yerine goto suz yapabilirsin.

   while(input(pin_a0))
     { ;} 


şeklinde de olabilir.

bir de sizin denediğinizi yapayim sağolun.