tek seferlik döngü

duhan

Üye
Katılım
7 Eki 2007
Mesajlar
65
Puanları
1
Yaş
43
gecenin bu saatinde aklıma takıldı işte yardımcı olabilirmisiniz? Örneğin pin bir tanesinde bir buto var ve butona her bastığımda herhangi bir değişkenin değeri bir artsın. ben döngü ile yapıorum ancak butona bastığım andan bıraktığım ana kadar geçen süre içereisinde saymaya devam ediyor. benim isteğim butona ilk bastığım anda bir artsın basılı tutmaya devam etsem bile değer artmasın. bir sonraki başısta yine 1 artsın. umarım anlatabilmişimdir...:D
 
gecenin bu saatinde aklıma takıldı işte yardımcı olabilirmisiniz? Örneğin pin bir tanesinde bir buto var ve butona her bastığımda herhangi bir değişkenin değeri bir artsın. ben döngü ile yapıorum ancak butona bastığım andan bıraktığım ana kadar geçen süre içereisinde saymaya devam ediyor. benim isteğim butona ilk bastığım anda bir artsın basılı tutmaya devam etsem bile değer artmasın. bir sonraki başısta yine 1 artsın. umarım anlatabilmişimdir...:D

PLC'de yükselen kenar tetikleme diye bir durum var, lakin sizin pic ile gerçekleştireceğinizi düşünüyorum. Bir hafıza bitini düğme basılı bayrağı olarak atayın. İlk çevrimde bayrağı "1" olarak kurun. Sonrasında iligili giriş ile bayrağı "ve" işlemine tabi tutup (sayıcı girişine) çıkış olarak atayın. Akabinde düğme basılı ise bayrağı "0", değilse "1" olarak kurun.
 
teşekkürler hemen deniyorum. Bu arada picle yapıcam CSS C dilinde belirtmeyi unutmuşum kusura bakmayın
 
Kod:
if (input(buton))
      {
         delay_ms(15);    // Butona basılınca meydana gelen arkın etkisini önlemek için verilen gecikme
         sayi++;          // sayı arttırılıyor
         
         while(input(buton)); // Buton bırakılana kadar bekle
         
         {
           
         }
      }
 
Kod:
if (input(buton))
      {
         delay_ms(15);    // Butona basılınca meydana gelen arkın etkisini önlemek için verilen gecikme
         sayi++;          // sayı arttırılıyor
         
         while(input(buton)); // Buton bırakılana kadar bekle
         
         {
           
         }
      }

Kod:
if (input(buton))
      {
         delay_ms(15);    // Butona basılınca meydana gelen arkın etkisini önlemek için verilen gecikme
         sayi++;          // sayı arttırılıyor
         output_d(sayi);
         while(input(buton)); // Buton bırakılana kadar bekle
         
         {
           
         }
      }
bu şekilde yapsam d portuna bağlı ledleri butona her bastığımda yakmam gerekir değilmi. ama başaramadım. Bu arada yardımlarınız için teşekkür ederim.
 
bence bu döngüyü while ile kurarsan sonuç alıyorsun tecrübe ile sabittir.
 
if(butona basıldımı==evet ve kilit==0){
kilit=1;
degişken++;
}
if(buton bırakıldımı==evet ve kilit==1)kilit=0;
döngü kullanırsanız yada delay kullanrsanız ve eğer büyük programlar yazacaksanız programınız while ve delay ın olduğu yerde donar bir satır ilerlemez buda istenen bir durum değildir bu yüzden mümkün olduğu ölçüde programı kitlemeyen yazılımımsal çözümleri kullanmak tercih edilir
 

Forum istatistikleri

Konular
129,809
Mesajlar
930,319
Kullanıcılar
452,617
Son üye
tahir_akdg

Yeni konular

Geri
Üst